查询未知名字段的SQL

--知道数据表中一个字段的名字,但需要查询的是数据库里除去这个字段的所有数据???

SQL语句:

declare @sql varchar(2000)

set @sql=''

select @sql = @sql +','+ name from syscolumns where id=object_id('表名') and name <>'字段名'

set @sql=stuff(@sql,1,1,'')

exec('select '+@sql+' from 表名')

1、声明了局部变量 @sql

2、获取数据表的除指定字段外的所有字段名。

 从数据表object_id('表名')中的列syscolumns中查询所有的字段名name

3、整理所查询的字段名,如去除查询结果中的多余的逗号…

 Object_id(‘object’),其中’object’是要使用的对象,object的数据类型为char或nchar。如果object的数据类型是char,那么隐性将其转换成nchar,返回int类型的值

Stuff函数将字符串插入另一字符串。它在第一个字符串中从开始位置删除指定长度的字符;然后将第二个字符串插入第一个字符串的开始位置

name为syscolumns系统表中的列名,表示列名或过程参数的名称

id为syscolumns系统表中的列名,表示该列所属的表对象ID,或与该参数关联的存储过程ID

注:详细说明可参见SQL Server的Transact-SQL帮助

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值