1

単一のストアド プロシージャ コールを使用して、不明な数のレコードをデータベースに挿入できるようにするにはどうすればよいでしょうか?

次のテーブル定義があるとします。

CREATE TABLE PHONE(
    PhoneID int identity(1,1),
    PhoneNumber varchar(20),
    PersonID int
)

そして、次の挿入ストアド プロシージャがあります。

CREATE PROCEDURE dbo.usp_Phone_Insert
    @PhoneNumber varchar(20),
    @PersonID int
AS

INSERT 
    PHONE 
VALUES
    (@PhoneNumber, @PersonID)

これを変換して、このストアド プロシージャへの 1 回の呼び出しで任意の数のレコードを挿入するにはどうすればよいでしょうか?

4

1 に答える 1

3

このトピックに対応するコードサンプルを含むブログ投稿がいくつかあります。

シングルトン、XML、およびTVPインサートのパフォーマンス比較 http://sqlfool.com/2008/11/performance-comparison-of-singleton-xml-and-tvp-inserts/

XMLを使用した一括挿入 http://sqlfool.com/2008/11/bulk-inserts-with-xml/

テーブル値パラメーターを使用した1対多の挿入 http://sqlfool.com/2008/11/one-to-many-inserts-with-table-valued-parameters/

HTH。

于 2013-03-12T21:57:17.943 に答える