簡體   English   中英

存儲過程中的動態表

[英]Dynamic Table from stored procedure

我正在嘗試通過此鏈接從存儲過程創建臨時表

他在字符串中定義了sql server版本。 從2005年到2012年,我們的客戶使用不同類型的sql服務器。

字符串:'SQLNCLI','Server =(local)\\ SQL2008; Trusted_Connection = yes;','EXEC getBusinessLineHistory'

如何獨立於sql server平台使用該命令

OPENROWSET創建到遠程服務器的動態鏈接。

http://technet.microsoft.com/zh-CN/library/ms190312.aspx

您可以使用更改的參數創建對動態鏈接的動態TSQL調用。 下面是示例代碼。 可以使用傳遞為參數的@my_Server將其轉換為存儲過程。

請注意,由於僅存在一個表,因此這不支持同時調用多個。

您不能使用本地臨時表,因為EXEC在存儲過程中調用sp_executesql可能存在范圍問題。

這些是您需要研究的東西。

-- Set the server info
DECLARE @my_Server SYSNAME;
SET @my_Server = 'Server=(local)\SQL2008';

-- Clear the staging table
truncate table STAGE.dbo.MYTABLE;

-- Allow for dynamic server location
DECLARE @my_TSQL NVARCHAR(2048);

SET @my_TSQL =
'INSERT INTO STAGE.dbo.MYTABLE SELECT * FROM OPENROWSET(''SQLNCLI'',' + @my_TSQL + 
';Trusted_Connection=yes;'', ''EXEC usp_My_Stored_Procedure'')';

-- Run the dynamic remote TSQL
exec sp_executesql @my_TSQL;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM