如何将列表作为输入参数传递给 TBV 函数?
How do i pass list as a input parameter to the TBV function?
我有一个 TBV 函数,想像这样传递我的函数列表类型参数
ALTER FUNCTION [dbo].[fn_Functiont]
(
@listType (what type i could use here ??)
)
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
)
我想在我的函数中使用这个@listType,特别是检查列表是否包含任何值并用它做一些事情 value.I 我通过 Entity Framework 调用这个函数 5。
过去,我们通常传递逗号分隔的字符串并将其拆分为 table。现在SQL服务器支持User-Defined table类型,可以在您的场景中使用。
创建新的用户定义 table 类型
CREATE TYPE CustomList AS TABLE
(
ListItem VARCHAR(50)
)
GO
如何申报
DECLARE @MyList CustomList
如何使用
INSERT INTO @MyList
SELECT '1'
GO
INSERT INTO @MyList
SELECT '2'
在您的情况下,您可以按以下方式输入列表。
ALTER FUNCTION [dbo].[fn_Functiont]
(
@listType MYLIST
)
....
....
要了解有关此访问的更多信息MSDN
要知道如何使用 table 输入 entity framework 你可以查看 here
我有一个 TBV 函数,想像这样传递我的函数列表类型参数
ALTER FUNCTION [dbo].[fn_Functiont]
(
@listType (what type i could use here ??)
)
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
)
我想在我的函数中使用这个@listType,特别是检查列表是否包含任何值并用它做一些事情 value.I 我通过 Entity Framework 调用这个函数 5。
过去,我们通常传递逗号分隔的字符串并将其拆分为 table。现在SQL服务器支持User-Defined table类型,可以在您的场景中使用。
创建新的用户定义 table 类型
CREATE TYPE CustomList AS TABLE
(
ListItem VARCHAR(50)
)
GO
如何申报
DECLARE @MyList CustomList
如何使用
INSERT INTO @MyList
SELECT '1'
GO
INSERT INTO @MyList
SELECT '2'
在您的情况下,您可以按以下方式输入列表。
ALTER FUNCTION [dbo].[fn_Functiont]
(
@listType MYLIST
)
....
....
要了解有关此访问的更多信息MSDN
要知道如何使用 table 输入 entity framework 你可以查看 here