将服务器名称作为变量

wsc*_*kai 6 sql t-sql sql-server

我试图从不同的服务器获取数据,服务器名称可能会更改.所以我将服务器名称设置为参数.我的sql存储过程的想法是这样的

CREATE PROCEDURE [dbo].[GetData]
        @ServerName
AS
BEGIN
    SELECT * FROM @ServerName.ClientDataBase.dbo.Client
END
Run Code Online (Sandbox Code Playgroud)

有谁知道如何实现这一目标?

数据库版本是sql server 2005

Ant*_*lev 5

使用动态SQL,不过这可能是邪恶的:

exec('select * from ' + @ServerName + '.ClientDatabase.dbo.Client')
Run Code Online (Sandbox Code Playgroud)