以下是DataTable
的展示方式(2列:Name
和Code
):
Name Code
name1 code1
name2 code2
name3 code3
我想将DataTable
插入到名为MyTable
的现有表中,该表具有主键和2列。
我真的不知道应该如何开始编写我的存储过程,有没有办法作为参数发送DataTable
或类似的东西?
谢谢。
答案 0 :(得分:3)
在SQL-Server 2008中,您可以使用table valued parameters。像这样:
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并绕过存储过程。