Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Truyền mảng tới một thủ tục được lưu trữ trên máy chủ SQL

Trong SQL Server 2008 trở lên

Tạo một kiểu trong SQL Server như sau:

CREATE TYPE dbo.ProductArray 
AS TABLE
(
  ID INT,
  Product NVARCHAR(50),
  Description NVARCHAR(255)
);

Thay đổi quy trình của bạn trong SQL Server:

ALTER PROC INSERT_SP
@INFO_ARRAY AS dbo.ProductArray READONLY
AS
BEGIN
    INSERT INTO Products SELECT * FROM @INFO_ARRAY
END

Sau đó, bạn sẽ cần tạo một DataTable đối tượng với các giá trị cần chuyển trong C #:

DataTable dt = new DataTable();
//Add Columns
dt.Columns.Add("ID");
dt.Columns.Add("Product");
dt.Columns.Add("Description");
//Add rows
dt.Rows.Add("7J9P", "Soda", "2000ml bottle");

using (conn)
{
    SqlCommand cmd = new SqlCommand("dbo.INSERT_SP", conn);
    cmd.CommandType = CommandType.StoredProcedure;
    SqlParameter dtparam = cmd.Parameters.AddWithValue("@INFO_ARRAY", dt);
    dtparam.SqlDbType = SqlDbType.Structured;
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thực thi thủ tục được lưu trữ từ một hàm

  2. Tạo một cột được tính toán trong SQL Server bằng T-SQL

  3. Một câu lệnh SQL Server duy nhất có phải là nguyên tử và nhất quán không?

  4. Cách chuyển đổi cột dấu thời gian của SQL Server sang định dạng ngày giờ

  5. Cách xác định giá trị của bạn dưới dạng DBA cho người điều hành tài chính