sql >> Database >  >> RDS >> Sqlserver

Is het mogelijk om een ​​procedure voor Invoegen in opgeslagen te doen?

U moet een aantal dingen doen om dit op gang te krijgen, aangezien uw parameter meerdere waarden krijgt, moet u een tabeltype maken en ervoor zorgen dat uw winkelprocedure een parameter van dat type accepteert.

Aangezien u een TABLE doorgeeft, als parameter moet je een TABLE TYPE maken, iets als volgt

TABELTYPE

CREATE TYPE dbo.Prco_Table AS TABLE 
 (
    [Val1]         Data Type
    [Val2]         Data Type
  )
 GO

Opgeslagen procedure om die typeparameter te accepteren

 CREATE PROCEDURE mainValues 
 @TableParam Prco_Table READONLY   --<-- Accepts a parameter of that type 
 AS                                  -- Note it is ReadOnly 
 BEGIN
    SET NOCOUNT ON;
  /* do your insert from this parameter or other cool stuff  */

  INSERT INTO Target_Table (Col1, Col2)
  SELECT [Val1] , [Val2]
  FROM  @TableParam    --<-- Table Type variable


END

PROC UITVOEREN

Declareer een variabele van dat type en vul deze met uw waarden.

 DECLARE @Table ClaimData(      --<-- Declare a variable of your type
          [Val1]         Data Type
          [Val2]         Data Type
                         ); 

 -- Populate the variable
   INSERT INTO @Table ([Val1],[Val2])
   SELECT testdesc, testoption
   FROM tableA
   WHERE testoption = 1

  EXECUTE mainValues  @Table --<-- Pass this variable of Table Type


  1. Django Admin-zoekopdracht raakt de Postgres-index niet

  2. krijg een kolom in kleine letters van ResultSet met kolomnaam

  3. mysql-query om rijgegevens dynamisch naar kolommen te converteren

  4. Activeer alternatieven voor twee tabellen die elkaar wederzijds moeten bijwerken