Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Melewati c# DataTable sebagai parameter ke prosedur tersimpan di MS SQL Server 2008

Pertama, Anda perlu membuat tipe:

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

Sekarang prosedur tersimpan Anda dapat mendeklarasikan ini sebagai parameter input hanya baca:

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

Mengapa Anda ingin menggunakan kursor di sini, atau berpikir Anda membutuhkannya, saya tidak yakin. Anda dapat menambahkan ORDER BY klausa ke INSERT...SELECT jika menurut Anda itu akan berguna (dan ada sesuatu yang berarti untuk dipesan), tetapi sebaliknya jika Anda benar-benar menginginkan kursor di sini, Anda harus dapat mendeklarasikannya terhadap @datatable seperti yang Anda lakukan untuk tabel lainnya.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TSQL Msg 1013 Gunakan nama korelasi untuk membedakannya.

  2. Referensi Microsoft.SqlServer.Smo.dll

  3. SQL Server:Ekstrak Tabel Meta-Data (deskripsi, bidang dan tipe datanya)

  4. Hapus SKEMABINDING dari Tampilan di SQL Server

  5. Cara membuat cadangan file SQL Server 2014 Express Localdb (.mdf) secara terprogram