我在 cms 中构建了大约 100 个站点,每个站点都有自己的数据库。每个数据库都有相同的表。
我的存储过程需要在给定站点名称的情况下选择数据库中的所有页面。
下面我尝试将数据库名称作为参数传递,但似乎不起作用。
...
@site nvarchar(250)
AS
SELECT *
FROM @site..cmsDocument
WHERE published = 1
还有其他方法吗?
最佳答案
SELECT @dbname = quotename(dbname)
SELECT @sql = ' SELECT ... FROM ' + @dbname + '.dbo.tablename WHERE ...'
EXEC sp_executesql @sql, @params, ...
引用:
关于sql-server - 是否可以将数据库名称作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/624797/