[英]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.