【发布时间】:2012-03-19 03:53:41
【问题描述】:
我在一台服务器上有 2 个数据库。 我需要编写基于@db 变量进行选择的程序。
我知道这有两种可能性:
我声明
@SQL nvarchar(max)并以纯文本格式生成我的查询。然后我做exec @SQL。 糟糕的变种恕我直言。我做了 2 个类似的查询并使用 if @db='' 1st query else 2nd query。另一个糟糕的变体,因为它是重复代码。
问题是 - 有没有办法这样做或类似:select * from @db.dbo.table?
【问题讨论】:
-
您可能想查看同义词,但我不知道您是否可以创建一个中间批次。 msdn.microsoft.com/en-us/library/ms177544.aspx
-
表名,包括数据库,不能在不使用动态SQL的情况下用变量指定。唯一的另一种选择是提示用户输入值,并根据用户输入生成带有硬编码值的脚本。
标签: sql sql-server tsql