複数のテーブルから3つの列を取得するストアドプロシージャがあります。ユーザー定義の複数値テーブルで結果を取得し、変数を別のプロシージャに渡して、変数データに対して操作を実行したいと思います。しかし、それは機能していません。私は次のコードを持っています。なぜそれが機能しないのか考えはありますか?
--This is the initial stored procedure
Create Procedure spSelectData
AS
BEGIN
Select
Userid, first_date, last_update
From Users
END
--This is to create the table type.
Create type Task1TableType AS TABLE
(
Userid nvarchar(20),
First_date datetime,
Last_update datetime
)
--Declare a table of type
DECLARE @firstStep AS Task1TableType
(
Userid nvarchar(20),
First_date datetime,
Last_update datetime
)
Insert @firstStep EXEC spSelectData
Select * from @firstStep
-- This is the procedure 1
CREATE PROC spTest1
@TTType Task1TableType READONLY
AS
BEGIN
Select * from @TTType
END
問題はここにあります:
DECLARE @firstStep AS Task1TableType
(
Userid nvarchar(20),
First_date datetime,
Last_update datetime
)
Insert @firstStep
EXEC spSelectData;
する必要があります:
DECLARE @firstStep AS Task1TableType;
Insert INTO @firstStep
EXEC spSelectData;
EXEC spTest1
@firstStep;
タイプが定義されている列を定義する必要はなく、INSERT
にはINTO
句が必要です。その後、コードを変更すると機能します。