Thanks.
>Try this:
>
>
>declare
>@sql nvarchar(128)
>,@var varchar(128)
>
>SET @sql = 'set @var = (select col from '+@table+' where pk = '+ @param + ')'
>exec sp_executesql @sql, N'@var varchar(128) output', @var output
>
>
>Of course, in the above you would have to cast @param if it were an integer. If it is a char, you will have to put quotes around it like:
>
>...+' where pk = '''+@param+''')'
>
>BOb
>
>
>
>
>>I have a stored proc that uses the following code:
>>
>>set @var = (select col from table where pk = @param)
>>
>>
>>What I would like to do is make 'table' a variable to make the sp more generic. Something like this would be nice (but this won't work).
>>
>>set @sql = 'select col from ' + @table + ' where pk = ' + @param
>>set @var = (exec sp_executesql @sql)
>>
>>
>>Any ideas how to set a variable to the result of a dynamically constructed sql statement?
>>
>>TIA
>>
>>John