這裏是我的DataTable
看起來像(2列:Name
和Code
):插入數據表爲表中的StoredProcedure
Name Code
name1 code1
name2 code2
name3 code3
我想那DataTable
插入一個名爲MyTable
現有的表有一個主鍵和那兩列。
我真的不知道我應該如何開始編碼我的存儲過程,有沒有辦法發送參數DataTable
或類似的東西?
謝謝。
這裏是我的DataTable
看起來像(2列:Name
和Code
):插入數據表爲表中的StoredProcedure
Name Code
name1 code1
name2 code2
name3 code3
我想那DataTable
插入一個名爲MyTable
現有的表有一個主鍵和那兩列。
我真的不知道我應該如何開始編碼我的存儲過程,有沒有辦法發送參數DataTable
或類似的東西?
謝謝。
在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並繞過存儲過程。
這裏有一個可能有用的鏈接:http://lennilobel.wordpress.com/2009/07/29/sql-server-2008-table-valued-parameters-and-c-custom-iterators-a-match-做在天堂/ –
你在用什麼DMBS?什麼版本? – GarethD
@GarethD我正在使用sqlserver 2008 – idish
http://msdn.microsoft.com/en-us/library/ex21zs8x.aspx – PinnyM