28

次のパラメーターを持つ T-SQL ストアド プロシージャがあります。

CREATE PROCEDURE [dbo].[SaveData]
-- Add the parameters for the stored procedure here
    @UserID varchar(50),
    @ServiceID varchar(50),
    @param1 varchar(50),
    @param2 varchar(50),
    @endDate datetime
AS BEGIN
    . 
    .
    -- my code --

selectパラメータとしての結果を渡すことが可能かどうかを知りたい:

    exec SaveDate (SELECT player.UserID,player.ServiceID, 'no','no',GETDATE()
           FROM player)

このようなことを試しましたが、うまくいきません。

4

2 に答える 2

8

例で作成した SELECT クエリは、おそらく複数の行を返します (SELECT には WHERE 句または TOP(n) がありません)。SQL Server 2008 から、プロシージャで "表形式" のパラメーター セットを使用できるようにすることが意図されている場合は、テーブル値パラメーターを使用できます。

これには、ユーザー定義のテーブル table の作成が含まれ、ほぼ間違いなく、ストアド プロシージャ内のロジックを調整する必要があります。

お役に立てれば :)

詳細については、 http://msdn.microsoft.com/en-us/library/bb510489 (SQL.100).aspx を参照 してください。

于 2012-12-31T11:27:59.267 に答える