У меня есть временная таблица, заполненная множеством целых чисел. Мне нужно передать эту заполненную временную таблицу в другую хранимую процедуру, однако SQL не позволяет вам передавать временную таблицу в другую хранимую процедуру (не в любом случае).Не удается передать временную таблицу из одной хранимой процедуры в другую с ошибкой «Должен объявить скалярную переменную»
Я создал ТИП, чтобы обойти это как https://msdn.microsoft.com/en-us/library/bb510489.aspx, но intellisense жалуется, что таблица, использующая этот пользовательский тип, не является скалярной переменной.
CREATE TYPE TableType AS TABLE
(
TheIds INT
);
DECLARE @IDsThatNeedToPass AS TableType
INSERT INTO @IDsThatNeedToPass
SELECT . . .
. . .
EXEC OtherStoredProcedure @IDsThatNeedToPass
For some reason the EXEC command says that I 'Must declare the scalar variable "@IDsThatNeedToPass"'
In addition to this, my OtherStoredProcedure cannot find my user-defined type.
CREATE PROCEDURE [dbo].[OtherStoredProcedure]
(
@TheIds TableType READONLY -- Complains that Parameter or variable '@TheIds' has an invalid data type
)
...
Любые идеи, что может быть причиной этого? Я использую Microsoft SQL Server Management Studio 2014.