我有一个非常基本的测试存储过程,如下所示。此proc正在另一个服务器中的不同数据库中读取数据。为此,我使用的是链接服务器。根据我的阅读,我需要将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
这是语法错误的一大堆。是否可以传入这些参数并在我的存储过程中使用?我不得不对一堆不同的触发器进行这种改变,所以sorta试图找到一个简洁的解决方案......