我有一个包含多个数据库的 SQL Server。我有一个主数据库,其中包含多个包含实体和 ID 号的表。然后,每个实体都有一个与其所有信息相关的数据库(不是表,而是数据库)。例如,如果 MAIN 数据库中的实体的 ID 号为 1,则同一 SQL Server 上将有一个 SubDatabase1 数据库。
本质上,我想做的是在主数据库中创建一个存储过程,从子数据库收集数据,但我收集的子数据库应该根据传递给 Proc 的 ID 号来确定。
我知道这是完全错误的,但我想知道是否有人可以为我阐明这一点。
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE GetInstallationCount
-- Add the parameters for the stored procedure here
@installId int=0
AS
BEGIN
SET NOCOUNT ON;
//Trying to make the DatabaseName dynamic here!!
select count(*) from [email protected] /cdn-cgi/l/email-protection
END
GO
谢谢-J
阅读有关如何创建动态 SQL http://www.mssqltips.com/tip.asp?tip=1160, 特别sp_executesql http://msdn.microsoft.com/en-us/library/ms188001.aspx。这应该可以帮助您开始:
DECLARE @theSql varchar(1000)
DECLARE @installId int
SET @installId = 1
SET @theSql = 'SELECT COUNT(*) FROM dbo.Installation' + CAST(@installId as nvarchar) + '.Names'
EXEC (@theSql)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)