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

Truyền c # DataTable làm tham số cho thủ tục được lưu trữ trong MS SQL Server 2008

Trước tiên, bạn cần tạo một loại:

CREATE TYPE dbo.whatever AS TABLE
(
  Supp_Id          int, 
  Del_Methode_Id   int,
  Ord_Amount       int,
  Promo_Id         int,
  Discount_Amount  Money
);

Giờ đây, thủ tục được lưu trữ của bạn có thể khai báo đây là tham số đầu vào chỉ đọc:

CREATE PROCEDURE dbo.do_whatever
  @datatable dbo.whatever READONLY
AS
BEGIN
  SET NOCOUNT ON;

  INSERT dbo.destination_table(column_list)
    SELECT column_list FROM @datatable;
END
GO

Tại sao bạn muốn sử dụng con trỏ ở đây hoặc nghĩ rằng bạn cần một con trỏ, tôi không chắc. Bạn có thể thêm ORDER BY mệnh đề INSERT...SELECT nếu bạn nghĩ điều đó sẽ hữu ích (và có thứ gì đó có ý nghĩa để đặt hàng theo thứ tự), nhưng nếu không, nếu bạn thực sự muốn một con trỏ ở đây, bạn có thể khai báo một con trỏ chống lại @datatable giống như cách bạn làm đối với bất kỳ bảng nào khác.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tôi có thể sử dụng ADFS 2.0 để xác thực một số người dùng nhất định chống lại SQL Server không?

  2. Kiểu dữ liệu thích hợp nhất để lưu trữ địa chỉ IP trong máy chủ SQL là gì?

  3. Truy vấn Sql để nhóm dữ liệu từ hai bảng

  4. Phương pháp chính xác để xóa hơn 2100 hàng (theo ID) với Dapper

  5. CS2001 Thiếu AssemblyAttributes.cs khi thực thi gói SSIS được triển khai tới máy chủ