Tôi muốn sử dụng kiểu dữ liệu được định nghĩa: đó là siêu nhanh.
Bước 1: Tạo User Defined Bảng trong Sql Server DB
CREATE TYPE [dbo].[udtProduct] AS TABLE(
[ProductID] [int] NULL,
[ProductName] [varchar](50) NULL,
[ProductCode] [varchar](10) NULL
)
GO
Bước 2: Tạo Stored Procedure với User Defined Loại
CREATE PROCEDURE ProductBulkInsertion
@product udtProduct readonly
AS
BEGIN
INSERT INTO Product
(ProductID,ProductName,ProductCode)
SELECT ProductID,ProductName,ProductCode
FROM @product
END
Bước 3: Thực hiện thủ tục được lưu trữ từ C#
SqlCommand sqlcmd = new SqlCommand("ProductBulkInsertion", sqlcon);
sqlcmd.CommandType = CommandType.StoredProcedure;
sqlcmd.Parameters.AddWithValue("@product", productTable);
sqlcmd.ExecuteNonQuery();
vấn đề có thể: Thay đổi User Defined Table
Trên thực tế không có lệnh sql server để thay đổi người sử dụng định nghĩa kiểu Nhưng trong studio quản lý bạn có thể đạt được điều này từ bước sau
1.tạo tập lệnh cho loại. (Trong cửa sổ truy vấn mới hoặc dưới dạng tệp) 2.xóa bảng thách thức của người dùng. 3. sửa đổi kịch bản tạo và sau đó thực hiện.
Nguồn
2016-09-11 14:51:56
SqlBulkCopy chắc chắn là một con đường để đi –
http://www.codedigest.com/Articles/Framework/388_Doing_Bulk_UploadInsert_of_DataTable_to_a_Table_in_SQL_server_in_C_.aspx cho một SqlBulkCopy thí dụ. – JamieSee
Bạn có thể vui lòng chỉ định phiên bản SQL Server nào không? –