DECLARE @f VARCHAR(100)
SELECT @f=vCodesham from Com_tSocialitemtrue where vid=5701
EXEC ('select ' + @f + ',nID from tblSocial5715 where empID = 51')
SELECT @f=vCodesham from Com_tSocialitemtrue where vid=5701
EXEC ('select ' + @f + ',nID from tblSocial5715 where empID = 51')
set @str1=(select vCodesham from Com_tSocialitemtrue where vid=5701)
set @sql='select '+@str1+',nID from tblSocial5715 where empID = 51'
exec(@sql)
那麼你第二個查詢實際上變成了
select 'aa',nID from tblSocial5715 where empID = 51 結果當然不是你想要的了
set @str1=(select vCodesham from Com_tSocialitemtrue where vid=5701)
set @sql='select '+@str1+',nID from tblSocial5715 where empID = 51'
exec(@sql)
你好,可以写成
declare @test varchar(20)
set @sql='select @test='+@str1+',nID from tblSocial5715 where empID = 51'
好像不行,提示没有定义@test变量,其实已经定义了!