簡體   English   中英

查看存儲過程的結果

[英]View results of Stored Procedure

我有一個執行動態構建的字符串的存儲過程。

它將來自另一台無法控制的服務器上不斷變化的模式的幾個select語句聯合起來(因此是動態字符串)。 我希望能夠從視圖中訪問此過程的結果,但這是我遇到的問題。

我創建了一個存儲過程(下面的代碼),它將我的結果輸出到一個表,但我希望能夠執行連接等,所以如果有一些方法將它包裝到視圖中會非常方便 - 我是想一個表有價值的功能,但我還沒有想出如何將動態SQL變成一個函數...任何幫助表示贊賞!

CREATE PROCEDURE [dbo].[usp_test]
 AS
 SET NOCOUNT ON;
DECLARE @sql VARCHAR(MAX) 

SELECT @sql = ISNULL(@sql+'

','')+'SELECT TOP (900) *
                                   FROM   OPENQUERY(Linked_Server, 
                                                  'SELECT   col1, col2, col3

FROM dbo.'+  tableName+'
               +'
               UNION' FROM  dbo.ls_views

--dbo.ls_views is a view with the pertinent views/table names from the other server.

Set @sql = @sql+ '
Select top (0) ''1'', ''2'',''3'' from sys.tables '           
--last select statement is to end multiple unions... not sure if there is a better way, but this works.

    --PRINT (@sql);
        --EXEC  (@sql);
EXECUTE sp_Executesql @sql
    GO

您是否可以讓SQL代理定期執行此操作並將結果轉儲到數據庫中的另一個表/一組表中?

然后你可以在任何你想要的查詢中使用它作為直接連接。

暫無
暫無

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

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