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

エンティティフレームワークを介してintの配列をT-SQLストアドプロシージャに渡す

    これは、テーブル値パラメーターを使用してストアドプロシージャを呼び出す方法です。主な違いは、DataTableを使用していることです パラメータ。

    パラメータ名のバインドに問題があったことを覚えていますが、それらが何であったかを正確に覚えていません。これは、プロシージャ呼び出しの構文に加えた変更を説明しています。これは機能するはずです。

    var dataTable = new DataTable();
    dataTable.TableName = "dbo.IntsTTV";
    dataTable.Columns.Add("Id", typeof(int));
    dataTable.Rows.Add(1); // Id of '1' is valid for the Person table
    
    SqlParameter parameter = new SqlParameter("UserIds", SqlDbType.Structured);
    parameter.TypeName = dataTable.TableName;
    parameter.Value = dataTable;
    
    var res = _db.Database.SqlQuery<string>("EXEC GetUsers @UserIds", parameter).ToList();
    


    1. SQLServerのエラーメッセージ4151「最初の引数のタイプを知る必要があるため、NULLIFの最初の引数のタイプをNULL定数にすることはできません」を修正しました。

    2. MySQLのORACLESrank()に相当

    3. PostgreSQLで挿入パフォーマンスを高速化する方法

    4. PostgreSQLを使用してPGpointforGeolocationを操作するにはどうすればよいですか?