sql >> データベース >  >> RDS >> Sqlserver

Insert Into ストアド プロシージャを実行することは可能ですか?

    パラメータは複数の値を取得するため、テーブル タイプを作成し、ストア プロシージャがそのタイプのパラメータを受け入れるようにする必要があります。

    TABLE を渡しているので パラメータとして、次のように TABLE TYPE を作成する必要があります

    テーブルの種類

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

    その型パラメータを受け入れるストアド プロシージャ

     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
    

    EXECUTE PROC

    その型の変数を宣言し、値を設定します。

     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. MySQLで日時から時間を差し引く方法は?

    2. PHPチェックMySQL最終行

    3. Exp()関数がPostgreSQLでどのように機能するか

    4. 行を同時に SELECT と UPDATE する方法はありますか?