在StoredProcedure中的表中插入数据表

本文关键字:插入 数据表 StoredProcedure | 更新日期: 2023-09-27 17:55:06

我的DataTable是这样的(2列:NameCode):

Name Code

name1 code1
name2 code2
name3 code3

我想将DataTable插入到一个名为MyTable的现有表中,该表有一个主键和那两个列。

我真的不知道我应该如何开始编码我的存储过程,有没有办法发送一个参数DataTable或类似的东西?

谢谢。

在StoredProcedure中的表中插入数据表

在SQL-Server 2008中可以使用表值参数。像这样:

CREATE TYPE dbo.MyTableType AS TABLE 
(   Name    VARCHAR(5),
    Code    VARCHAR(5)
);
GO;
CREATE PROCEDURE dbo.MyProcedure (@MyTableType dbo.MyTableType READONLY)
AS
    INSERT dbo.MyTable (Name, Code)
    SELECT Name, Code
    FROM    @MyTableType;
GO;

然后简单地传递你的数据表作为SqlCommand参数(SqlDbType.Structured)的值。

也可以使用SQLBulkInsert绕过存储过程。