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
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'
但我在查詢器裏 一直提示語法錯誤。
不知怎麼回事。