Mysql MS SQL链接服务器和在FROM子句中使用

Mysql MS SQL链接服务器和在FROM子句中使用,mysql,sql,sql-server,Mysql,Sql,Sql Server,我有一个非常基本的测试存储过程,如下所示。此进程正在读取不同数据库、不同服务器中的数据。为此,我使用了一个链接服务器。根据我阅读的内容,我需要将From条款更改为: [linked server name].[database name].[schema name].[table name] 但是,我希望将链接的服务器名称和数据库名称作为参数传入,并在我的FROM子句中使用它们。我不关心注入攻击等。我将从配置文件中传递它 create PROC [dbo].[SelectTEST] @GU

我有一个非常基本的测试存储过程,如下所示。此进程正在读取不同数据库、不同服务器中的数据。为此,我使用了一个链接服务器。根据我阅读的内容,我需要将From条款更改为:

[linked server name].[database name].[schema name].[table name]
但是,我希望将链接的服务器名称和数据库名称作为参数传入,并在我的FROM子句中使用它们。我不关心注入攻击等。我将从配置文件中传递它

create PROC [dbo].[SelectTEST] 
@GU UNIQUEIDENTIFIER,
@LINKED_SERVER_NAME nvarchar(max),
@DATABASE_NAME nvarchar(max)
AS 
    SET NOCOUNT ON 
    SET XACT_ABORT ON  

    BEGIN TRAN

    SELECT [GU]
    FROM '[' + @LINKED_SERVER_NAME +'].['+ @DATABASE_NAME + '].[Test Table] '
    WHERE  ([GU] = @GU OR @GU IS NULL) 

    COMMIT

这是一大堆语法错误。是否可以传入这些参数并在存储过程中使用?我将不得不对一系列不同的过程进行此更改,因此尝试寻找一个简洁的解决方案…

您需要用动态sql编写整个语句的脚本。可能的重复除了动态sql之外,没有其他方法?不,没有其他类似的对动态对象名称的支持。