SQL Codedeclare @SQLResult  varchar(30)declare @datafield varchar(30)declare @sql varchar(800) set @datafield='PropertyID50'set @sql='Select Top 1 '+ @datafield +'  From tblItemProp Where ItemPropID=19229' exec (@sql) set @SQLResult= exec (@sql)   --為何這句不能執行。

解决方案 »

  1.   

    declare @SQLResult  varchar(30) declare @datafield varchar(30) declare @sql nvarchar(800) set @datafield='PropertyID50' set @sql=N'Select Top 1 @SQLResult='+ @datafield +'  From tblItemProp Where ItemPropID=19229' 
    exec sp_executesql @sql,N'@SQLResult varchar(30) output',@SQLResult output
    select @SQLResult
      

  2.   

    INSERT TB exec (@sql) 
    再把变量赋值,要不然按1楼
      

  3.   

    你这样写只能得到exec的return返回值,要满足你的要求,改为sp_executesql就行了