我想将我的数据库拆分成两个数据库,快速检查表明我可以轻松地跨数据库查询,加入,更新表。
我现在的主要问题是要做到这一点,我必须做这样的事情。
SELECT *
FROM Database1.dbo.Table1,
Database2.dbo.Table2
正如您所看到的,我必须明确提到数据库名称,这意味着如果使用不同的名称部署数据库名称,则此代码将不再起作用。
有什么想法可以克服这个问题吗?
答案 0 :(得分:0)
您可以使用db_name()
获取当前数据库名称和动态sql来构建动态查询。
类似的东西:
declare @databaseName nvarchar(max) = db_name()
declare @dynamicSql nvarchar(max) = 'SELECT * FROM '+ @databaseName + '.dbo.Table1'
exec sp_executesql @dynamicSql