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)

我如何能够将其转换为在对该存储过程的一次调用中插入任意数量的记录?

4

1 回答 1

3

我有一些博客文章,其中包含解决此主题的代码示例。

Singleton、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/

具有表值参数的一对多插入 http://sqlfool.com/2008/11/one-to-many-inserts-with-table-valued-parameters/

HTH。

于 2013-03-12T21:57:17.943 回答