关于不才用列名查询的问题
一般写查询如下:
select a,b,c from T
a,b,c是T表的列名
那么如果不用列名呢?改用什么
------解决方案--------------------DECLARE @s NVARCHAR(4000)
SET @s = ''
SELECT @s = @s + ',' + 'isnull('+QUOTENAME(name)+','''')'
FROM syscolumns
WHERE id = OBJECT_ID('表名')
--AND name NOT IN ( '不希望显式的列' )
SET @s = STUFF(@s, 1, 1, '')
EXEC('select '+@s+' from 表名 ')
------解决方案--------------------如果列名本身为乱码,就用[]包住,如果数据为乱码,那就只能改数据类型并重新导入
------解决方案--------------------直接像SELECT b.bb AS customname ……这样不行么?这样输出的列名就是as后面的那个了
------解决方案--------------------我估计楼主的意思是不是只知道表名,不清楚字段名的情况下去查询表的字段信息?但是知道表名的话,没有特殊权限限制没有必要这么写啊。