Mysql MS SQL链接服务器和在FROM子句中使用
我有一个非常基本的测试存储过程,如下所示。此进程正在读取不同数据库、不同服务器中的数据。为此,我使用了一个链接服务器。根据我阅读的内容,我需要将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
[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之外,没有其他方法?不,没有其他类似的对动态对象名称的支持。