2013-04-12 90 views
1

我有一個現有的CLR,它使用XST碎片並驗證傳入的XML。我想將數據點(不關心XML本身)捕獲到可以直接插入到數據庫表中。所以我打電話給我的CLR存儲過程,它會返回4列有成百上千行,我可以簡單地做一個從CLR存儲過程調用中返回一個表變量

insert into EXISTINGtable 
select * from TableReturnedFromCLRspCAll 

它不必是一個SP也可以是UDF ......我真正的問題是我如何讓CLR返回一張表。我需要能夠傳遞表格定義。因此,對於由CLR返回的表...我希望將4列名稱和類型作爲CLR調用的一部分作爲變量。

如果有人能幫助我,我會非常感激和非常感動,因爲我已經問過一些經驗豐富的傢伙,他們都會在我到達CLR時有動態表格和/或CLR根本返回一個表。

謝謝!

回答

1

從MSDN http://msdn.microsoft.com/en-us/library/ms131094.aspx

返回表格結果

要直接發送查詢的結果到客戶端,使用SqlPipe對象的Execute方法的 重載之一。這是 將結果返回給客戶端的最有效方式,因爲數據是 傳輸到網絡緩衝區而不被複制到託管 內存中。

我還沒有從存儲過程中嘗試過它,但是我已經使用下面的示例從CLR UDF中返回了一個表。 http://msdn.microsoft.com/en-us/library/ms131103.aspx