【发布时间】:2013-03-12 21:52:15
【问题描述】:
如何使用单个存储过程调用将未知数量的记录插入数据库?
假设我有这个表定义:
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)
我如何能够将其转换为在对该存储过程的一次调用中插入任意数量的记录?
【问题讨论】:
-
价值从何而来?
-
您可以使用table-valued parameter 或传递包含多个电话号码的
xml参数 -
即使可以,只要一次调用,您就会为插入的每条记录重复 PhoneNumber 和 PersonID。
-
tornambe,我认识到这一点,这就是为什么我要问如何更改存储过程。
标签: sql sql-server tsql stored-procedures bulkinsert