2016-09-21 88 views
0

有沒有辦法創建system table valued function可以在任何數據庫上運行。 類似於與SP創建系統表值功能

use master; 
create procedure sp_test 
as 
begin select 1 end; 

exec sys.sp_MS_marksystemobject sp_test 

該SP可以在任何數據庫服務器中執行。我在TVF尋找同樣的例子。

+0

我沒有看到任何問題,爲什麼你不能嘗試一次在測試實例 – TheGameiswar

+0

@TheGameiswar,我沒有工作。 TVF是否有任何命名約定? – Sher

+0

@TheGameiswar,你可以發表與上面相同的簡單例子來說清楚嗎? – Sher

回答

-1

在引用函數時使用數據庫名稱選項?如果是這樣,你可以只創建功能......

USE Master 
GO 

CREATE FUNCTION dbo.yourITVF() 
RETURNS TABLE AS RETURN 
SELECT * FROM <some table>; 
GO 

然後像這樣從任何數據庫實例上運行它:

SELECT * FROM master.dbo.yourITVF(); 
+0

但我想使它成爲系統TVF,不使用4部分標識符,因爲TVF內部是我想要在每個特定DB上使用的表,就像同樣的類比SP上面描述的 – Sher

+0

無論如何,我還沒有意識到您可以對您的ITVF示例中的存儲過程執行相同的操作。我只是提供替代/解決方案。 –

0

通過所有論壇會後,有沒有辦法讓系統功能。只有存儲過程和表可以完成系統。