将用户定义的表类型“即时”传递到存储过程中

问题描述 投票:0回答:1

如果我有一个使用用户定义的表作为其输入之一的存储过程,是否有任何方法可以在不事先声明变量的情况下调用该存储过程?

即我有这种类型:

CREATE TYPE [IDs] AS TABLE
(
    [ID] [BIGINT] NULL
)

和此过程

CREATE PROCEDURE spDoSomething (@IDs IDs)
AS
...

通常,这将通过首先声明表变量来调用:

DECLARE @IDs IDs
INSERT @IDs VALUES (1),(2)
EXEC spDoSomething @IDs

是否有任何方法可以在一行中调用它,即

EXEC spDoSomething @IDs = (SELECT 1 AS ID UNION ALL SELECT 2)

用例是我正在通过UI访问数据库,该UI动态构建SQL并且无法执行DECLARE @IDs...

sql sql-server tsql stored-procedures user-defined-types
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.