2015-10-08 7 views
5

複数のテーブルから3つの列を取得するストアドプロシージャがあります。私は、ユーザーが定義した複数の値を持つテーブルで結果を取得し、その変数を別のプロシージャに渡して、可変データの操作を実行したいとします。しかし、それは動作していません。私は次のコードを持っています。なぜそれが動作していないすべてのアイデア?ユーザー定義のテーブル型にデータを割り当てる方法SQL Serverでクエリを選択する2014

--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 
+0

何をして動作しません、エラーがありますか? – Iztoksson

+0

'EXECUTE spTest1'ステートメントを表示してください。 –

答えて

4

問題はここにある:

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; 

型が定義、およびINSERTINTO句を必要としている列を定義する必要はありません。その変更後、コードは機能します。

SqlFiddleDemo

関連する問題