借助临时表:exec('select '+@ColumnName+' as cols from into t '+@tableName
+ ' where ID='''+@ID+'''')select @temp = cols from tdrop table t
+ ' where ID='''+@ID+'''')select @temp = cols from tdrop table t
declare @tablename varchar(100)
declare @fieldname varchar(100)
declare @m_field nchar(100)
declare @s nvarchar(4000)
set @tablename='Orders'
set @fieldname='CustomerID'
set @s='select @m_field='+@fieldname+' from '+@tablename+' where employeeID=5'
exec sp_executesql @s,N'@m_field nchar(100) output',@m_field output
select @m_field
declare @tablename varchar(100)
declare @fieldname varchar(100)
declare @employeeid int
declare @m_field nchar(100)
declare @s nvarchar(4000)
set @tablename='Orders'
set @fieldname='CustomerID'
set @employeeid=5
set @s='select @m_field='+@fieldname+' from '+@tablename+' where employeeID=@employeeid'
exec sp_executesql @s,N'@m_field nchar(100) output, @employeeid int',@m_field output,@employeeid
select @m_field
declare @tableName .... <--你的具体类型
declare @ID .... <--你的具体类型
declare @s nvarchar(4000)
set @ColumnName='...'
set @tableName='...'
set @ID=....
set @s='select @temp='+@ColumnName+' from '+@tableName+' where ID=@ID'
exec sp_executesql @s,N'@temp 类型,output,@ID 类型',@temp output,@ID
select @temp
declare @ColumnName .... --<--你的具体类型
declare @tableName .... --<--你的具体类型
declare @ID .... --<--你的具体类型
declare @s nvarchar(4000)
set @ColumnName='...'
set @tableName='...'
set @ID=....
set @s='select @temp='+@ColumnName+' from '+@tableName+' where ID=@ID'
exec sp_executesql @s,N'@temp 类型 output,@ID 类型',@temp output,@ID
select @temp
+ ' where ID='''+@ID+''''
exec sp_executesql @s,N'@temp 类型 output,@ID 类型',@temp output,@ID