Tsql 创建系统表值函数
是否有方法创建可在任何数据库上运行的Tsql 创建系统表值函数,tsql,sql-server-2008-r2,Tsql,Sql Server 2008 R2,是否有方法创建可在任何数据库上运行的系统表值函数。 与SP类似 use master; create procedure sp_test as begin select 1 end; exec sys.sp_MS_marksystemobject sp_test 此SP可以在服务器内的任何数据库上执行。我在TVF中寻找相同的示例。引用函数时是否使用数据库名称作为选项?如果是这样,您可以创建您的函数 USE Master GO CREATE FUNCTION dbo.yourITVF() R
系统表值函数
。
与SP类似
use master;
create procedure sp_test
as
begin select 1 end;
exec sys.sp_MS_marksystemobject sp_test
此SP可以在服务器内的任何数据库上执行。我在TVF中寻找相同的示例。引用函数时是否使用数据库名称作为选项?如果是这样,您可以创建您的函数
USE Master
GO
CREATE FUNCTION dbo.yourITVF()
RETURNS TABLE AS RETURN
SELECT * FROM <some table>;
GO
在浏览了所有论坛之后,没有办法让系统发挥功能。只有存储过程和表可以在系统中完成。我看不出任何问题,为什么不能在测试中尝试一次呢instance@TheGameiswar,我做了,但没用。TVF有任何命名约定吗?@TheGameiswar,你能发布与上面相同的简单示例来说明吗?但我想让它成为系统TVF,而不是使用4部分标识符,因为TVF中有我想在每个特定数据库上使用的表,就像上面描述的与SP相同的类比一样,我不知道您是否可以使用ITVF执行与示例中存储过程相同的操作。我只是提供了一个替代方案。
SELECT * FROM master.dbo.yourITVF();