declare @result varchar(20)
declare @col varchar(20)
set @col='column_name'
declare @id int --??
set @id=3
declare @sql nvarchar(1000)
set @sql = 'select @result ='''+@col +''' from table_name where id ='''+ltrim(@id)+'''' --error! 请问怎么解决
exec (@sql)
declare @col varchar(20)
set @col='column_name'
declare @id int --??
set @id=3
declare @sql nvarchar(1000)
set @sql = 'select @result ='''+@col +''' from table_name where id ='''+ltrim(@id)+'''' --error! 请问怎么解决
exec (@sql)
declare @col varchar(20)
set @col='column_name'
declare @id int --??
set @id=3
declare @sql nvarchar(1000)
set @sql = 'select @result ='+@col +' from table_name where id ='+rtrim(@id) --error! 请问怎么解决
exec sp_executesql @sql,N'@result varchar(20) output',@result output--select @result
---例子
declare @result Nvarchar(20) ---这个地方要用Nvarchar类型
declare @col Nvarchar(20) ---这个地方要用Nvarchar类型
set @col='name' ---这个地方换成你想要的列名
declare @id int
set @id=1 ---换成你要的ID
declare @sql Nvarchar(1000)
set @sql = N'select @result ='+@col +' from sysobjects where id ='+rtrim(@id) --这个地方要改,因为你的ID是int,在连接字符串时报错,要用rtrim()转成字符串
exec sp_executesql @sql , N'@result Nvarchar(20)','@result output' ---这里的@result和上面的一样
exec sp_executesql @sql , N'@result Nvarchar(20)','@result output'