我正在尝试在sql server 2008中使用动态生成的完全限定表名。例如,这不起作用:
select max([id]) from @dbName+N'.[T1]'
这会产生如下错误:
Msg 102,Level 15,State 1,Line 73
'+'附近的语法不正确。
我知道这样的事情有效:
declare @qualifiedTable varchar(200) = @dbName+N'.[T1]'
select max([id]) from @qualifiedTable
但我必须做很多次,所以我真的很想排队。有可能吗?
答案 0 :(得分:2)
这应该有效:
sp_executesql N'select (max([id]) from ' + @dbName + '.dbo.[T1]';