是的,只要表值函数完成后返回一个表.
用户定义的函数可以嵌套; 也就是说,一个用户定义的函数可以调用另一个.当被调用函数开始执行时,嵌套级别递增,而当被调用函数完成执行时,嵌套级别递减.用户定义的函数最多可以嵌套32个级别.超过最大嵌套级别会导致整个调用函数链失败.对Transact-SQL用户定义函数的托管代码的任何引用都计为一个级别,而不是32级嵌套限制.从托管代码中调用的方法不计入此限制.
http://msdn.microsoft.com/en-us/library/ms186755.aspx
这非常简单,但确实有效:
--DROP FUNCTION RETURN_INT
--GO
CREATE FUNCTION RETURN_INT ()
RETURNS INT
WITH EXECUTE AS CALLER
AS
BEGIN
RETURN 1
END
GO
--DROP FUNCTION RETURN_TABLE
--GO
CREATE FUNCTION RETURN_TABLE ()
RETURNS @Test TABLE (
ID INT
)
WITH EXECUTE AS CALLER
AS
BEGIN
INSERT INTO @Test
SELECT DBO.RETURN_INT()
RETURN
END
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12572 次 |
| 最近记录: |