sql >> Database teknologi >  >> RDS >> Sqlserver

Sender c# DataTable som parameter til lagret procedure i MS SQL Server 2008

Først skal du oprette en type:

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

Nu kan din lagrede procedure erklære dette som en skrivebeskyttet inputparameter:

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

Hvorfor du vil bruge en markør her, eller tror du har brug for en, er jeg ikke sikker på. Du kan tilføje en ORDER BY klausul til INSERT...SELECT hvis du tror, ​​det vil være nyttigt (og der er noget meningsfuldt at bestille efter), men ellers, hvis du virkelig vil have en markør her, burde du være i stand til at erklære en mod @datatable ligesom du ville gøre for ethvert andet bord.




  1. Undtagelseshåndtering i Procedure med indlejrede funktioner i pl/sql

  2. mysql 12 timer til 24 timers tidskonvertering

  3. Tjek en hel tabel for en enkelt værdi

  4. Forsøger at installere innodb memcached plugin MySQL5.6.17 på ubuntu 14.04