2016-09-21 59 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

通过所有论坛会后,有没有办法让系统功能。只有存储过程和表可以完成系统。