从变量中选择数据库

时间:2012-11-16 14:42:50

标签: sql

所以我有两个数据库,它们之间没有任何关系。第一个是我的dbo.Clients存在的地方,并且有一个第二个数据库的数据库名称列。我的想法是从客户端选择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

1 个答案:

答案 0 :(得分:0)

您需要使用dynamic SQL来完成此任务:

DECLARE @sql nvarchar(max)
SET @sql = 'SELECT * FROM sql02.' + @dbName + '.dbo.Discovery'
EXEC sp_executesql @sql