0

所以我有两个数据库,它们之间没有关系。第一个是我的 dbo.Clients 存在的地方,并且有一列是第二个 db 的数据库名称。我的想法是从客户端中选择 dbName,然后使用该变量从第二个数据库中选择数据。查询不运行可以有人阐明一点吗?谢谢。

    @dbName varchar(50) OUTPUT,
@clientID varchar(50)
AS
BEGIN
    SET NOCOUNT ON;
    -- Insert statements for procedure here
    SELECT * FROM sql02.iproconfig4.dbo.Clients 
    SET @dbName = (SELECT Clients.ClientDatabase FROM sql02.iproconfig4.dbo.Clients WHERE ClientID = @clientID) 
    SELECT * FROM sql02.@dbName.dbo.Discovery   
END
4

1 回答 1

0

您将需要使用动态 SQL来完成此操作:

DECLARE @sql nvarchar(max)
SET @sql = 'SELECT * FROM sql02.' + @dbName + '.dbo.Discovery'
EXEC sp_executesql @sql
于 2012-11-16T14:45:24.833 回答