从表值函数返回表并在临时表中设置该值

So_*_*_oP 4 sql t-sql sql-server sql-function

我有一个表值函数.我还有一个标量值函数,我已经声明了一个临时表.我想在标量值函数内部执行表值函数,并在临时表中设置该值,如下所示

 **Exec @tempTable=TableValuedFunction**
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做?

这是表值函数

ALTER FUNCTION [dbo].[fn_Functiont]()
RETURNS TABLE 
AS
RETURN 
(   
SELECT d.*, b.Name AS Name, ps.Name AS PaymentSystemName, c.UserName AS UserName, c.FirstName AS ClientFirstName, c.LastName AS LastName, c.Number AS DocumentNumber, c.Id
FROM Document AS d
JOIN System AS ps ON d.SystemId = ps.Id
JOIN Client AS c ON c.Id = d.ClientId
LEFT JOIN Shop AS b ON b.Id = d.ShopId
WHERE d.OperationTypeId IN (2, 4, 5) AND c.Type = 1
)
Run Code Online (Sandbox Code Playgroud)

Joh*_*Woo 6

首先,您需要有一个表变量,其结构与您的TVF结果相同(或取决于您想要的列).例:

DECLARE @tempTable AS TABLE 
(
   .. columns here ...
)
Run Code Online (Sandbox Code Playgroud)

然后将从TVF返回的行插入表变量:

INSERT INTO @tempTable
SELECT * FROM [dbo].[fn_Functiont]()
Run Code Online (Sandbox Code Playgroud)