ALTER procedure [dbo].[dongtailei]
AS
begin
declare @fname varchar(20)    
set @fname = 'n'    
select @fname =@fname+'ame'    --设置字段名
declare @s Nvarchar(1000)    
set @s = 'select '+ @fname     --拼接字符串,注意有空格
select    @s=@s+' from color'    --注意有空格
Exec(@s)
end                
 
如果存储过程接收输入参数,那么就可以对列名fname实现动态拼接,
实现SQL对列名的动态查询
实际应用在 比如:有多个语言字段 LAN_CN ,LAN_EN ,LAN_JP
 
看到网上说 查询语句可以直接这样写:
set @s = 'select '     @fname     ' from tableName'    
但我在查询器里 一直提示语法错误。
不知怎么回事。