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

Truyền DataTable tới thủ tục được lưu trữ dưới dạng đối số

Bạn có thể thay đổi quy trình đã lưu trữ để chấp nhận một bảng tham số có giá trị như một đầu vào. Tuy nhiên, trước tiên, bạn sẽ cần tạo một bảng TYPE do người dùng xác định phù hợp với cấu trúc của C # DataTable:

CREATE TYPE dbo.PersonType AS TABLE
(
    Name NVARCHAR(50), -- match the length of SomeTable.Column1
    Age INT
);

Điều chỉnh SPROC của bạn:

CREATE PROCEDURE dbo.InsertPerson
    @Person dbo.PersonType READONLY
AS
BEGIN
  INSERT INTO SomeTable(Column1, Column2) 
     SELECT p.Name, p.Age
     FROM @Person p;
END

Trong C #, khi bạn liên kết dữ liệu với tham số PROC, bạn cần chỉ định tham số là:

parameter.SqlDbType = SqlDbType.Structured;
parameter.TypeName = "dbo.PersonType";

Xem thêm ví dụ ở đây Chuyển Bảng-Giá trị Tham số cho một thủ tục được lưu trữ



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Linux - PHP 7.0 và MSSQL (Microsoft SQL)

  2. Các kỹ thuật tốt hơn để cắt bớt các số không ở đầu trong SQL Server?

  3. Cách bật tất cả các ràng buộc kiểm tra trong cơ sở dữ liệu SQL Server - Hướng dẫn SQL Server / TSQL Phần 88

  4. Cách tự động thêm ngày 1 năm vào ngày hiện có trong SQL Server

  5. Sử dụng biểu thức chính quy trong một thủ tục được lưu trữ