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

DataTableを引数としてストアドプロシージャに渡す

    テーブルを受け入れるように、ストアドプロシージャを変更できます。値のパラメータ 入力として。ただし、最初に、C#DataTableの構造に一致するユーザー定義のテーブルTYPEを作成する必要があります。

    CREATE TYPE dbo.PersonType AS TABLE
    (
        Name NVARCHAR(50), -- match the length of SomeTable.Column1
        Age INT
    );
    

    SPROCを調整します:

    CREATE PROCEDURE dbo.InsertPerson
        @Person dbo.PersonType READONLY
    AS
    BEGIN
      INSERT INTO SomeTable(Column1, Column2) 
         SELECT p.Name, p.Age
         FROM @Person p;
    END
    

    C#では、データテーブルをPROCパラメーターにバインドするときに、パラメーターを次のように指定する必要があります。

    parameter.SqlDbType = SqlDbType.Structured;
    parameter.TypeName = "dbo.PersonType";
    

    こちらの例も参照してくださいテーブルの受け渡し-値ストアドプロシージャのパラメータ



    1. phpを使用したmysqlクエリを使用したプログレスバー

    2. リレーショナルデータベースと非リレーショナルデータベース–パート3

    3. if-elseステートメントエラーが発生しないことをトリガーします

    4. 配列上の集計関数