0

我想将我的数据库分成两个数据库,快速检查表明我可以轻松地跨数据库查询、连接、更新表。

我现在的主要问题是,要做到这一点,我将不得不做这样的事情。

SELECT * 
  FROM Database1.dbo.Table1, 
       Database2.dbo.Table2

如您所见,我必须明确提及数据库名称,这意味着如果使用不同名称部署数据库名称,则此代码将不再起作用。

有什么想法可以克服这个问题吗?

4

1 回答 1

0

您可以使用db_name()获取当前数据库名称和动态 sql 来构建动态查询。就像是:

declare @databaseName nvarchar(max) = db_name()

declare @dynamicSql nvarchar(max) = 'SELECT * FROM '+ @databaseName + '.dbo.Table1'

exec sp_executesql @dynamicSql
于 2013-09-22T11:12:03.393 回答