sql >> データベース >  >> RDS >> Sqlserver

ストアドプロシージャのパラメータとしてリストを渡すにはどうすればよいですか?

    値の配列をSQLServerのストアドプロシージャに渡すための推奨される方法は、テーブル値のパラメーターを使用することです。

    まず、次のようにタイプを定義します。

    CREATE TYPE UserList AS TABLE ( UserID INT );
    

    次に、ストアドプロシージャでそのタイプを使用します:

    create procedure [dbo].[get_user_names]
    @user_id_list UserList READONLY,
    @username varchar (30) output
    as
    select last_name+', '+first_name 
    from user_mstr
    where user_id in (SELECT UserID FROM @user_id_list)
    

    したがって、そのストアドプロシージャを呼び出す前に、テーブル変数を入力します。

    DECLARE @UL UserList;
    INSERT @UL VALUES (5),(44),(72),(81),(126)
    

    そして最後にSPを呼び出します:

    EXEC dbo.get_user_names @UL, @username OUTPUT;
    


    1. Google Data Analytics Professional証明書は価値がありますか?

    2. PostgreSQLのシリアル疑似データ型の概要

    3. CASCADEDELETEを1回だけ

    4. SQLServerの宛先とOLEDBの宛先