我可以在表值函数中调用标量函数吗?
谢谢
是的,只要完成后表值函数返回表即可。
用户定义的函数可以嵌套;也就是说,一个用户定义的函数可以调用另一个函数。当调用的函数开始执行时,嵌套级别增加,而当调用的函数完成执行时,嵌套级别减小。用户定义的函数最多可嵌套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