我试图找到一个替代方案,将变量的内容设置为一个大型查询,我在其中动态替换值。 有可能做这样的事吗?
declare @serv nvarchar(max)
set @serv = '[linkedServName].[dataBaseName]'
select top 10 * from @serv.dbo.someTable
如果是,您能否告诉我正确的语法?
感谢您的时间
答案 0 :(得分:2)
如果要参数化您选择的服务器和数据库,则必须使用动态sql。试试这个:
declare @serv nvarchar(max)
declare @qry nvarchar(max)
set @serv = '[linkedServName].[dataBaseName]'
set @qry = 'select top 10 * from ' + @serv + '.dbo.someTable'
exec(@qry)