Передать пользовательский тип таблицы «на лету» в хранимую процедуру - PullRequest
0 голосов
/ 14 января 2020

Если у меня есть хранимая процедура, которая использует пользовательскую таблицу в качестве одного из своих входных данных, есть ли способ вызвать хранимую процедуру без предварительного объявления переменной?

т.е. у меня есть этот тип:

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)

Вариант использования: я обращаюсь к базе данных через пользовательский интерфейс, который динамически создает SQL и выполнение DECLARE @IDs... невозможно

...