如果我有一个使用用户定义的表作为其输入之一的存储过程,是否有任何方法可以在不事先声明变量的情况下调用该存储过程?
即我有这种类型:
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...