小编edw*_*ins的帖子

在引用链接服务器中的表的本地数据库中创建存储过程

我目前有一个本地服务器链接到远程服务器。

是否可以在本地服务器内创建存储过程,但从链接服务器内的表中查询数据。我知道可能存在性能问题,但我不愿意在链接服务器上创建 sp,因为它需要获得权限才能这样做。

我相信我的问题是语法,但我无法确定到底是什么,

USE [LOCALDB]  --my local database or should I reference linked server db here
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROC [dbo].[mystoredprocedure]
    DECLARE @linkedserv NVARCHAR(150)
    DECLARE @linkeddb NVARCHAR(150)

    SET @linkedserv = 'HOSTNAME\SERVER';
    SET @linkeddb = 'remotedb';

    SELECT (CASE LTRIM(RTRIM([COLUMN1]))
        WHEN '' Then ''
        WHEN 'THIS' THEN 'THAT'
        WHEN 'NOW' THEN 'NEVER'
        ELSE 'OTHER' END) [Options]
    INTO #TempTable
    FROM @linkedserv.@linkeddb.dbo.TableOnLinkedServer --is this an issue?
    FULL OUTER JOIN OtherTableOnLinkedServer ON TableOnLinkedServer.COUMN1 = 
    OtherTableOnLinkedServer.COLUMN0   
Run Code Online (Sandbox Code Playgroud)

链接服务器 db …

sql-server stored-procedures linked-server

6
推荐指数
1
解决办法
1763
查看次数