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

sql_variant 列のテーブル値パラメーターに 'object' 型のパラメーターを渡す

    この投稿は何年も前のものですが、同じ問題に遭遇し、解決策があります。 DataTable を使用せず、代わりに SqlDataRecord のコレクションを作成する場合は、SqlDataRecord のデータ型を SqlDbType.Variant に設定できます。

     List<SqlDataRecord> dataTable = new List<SqlDataRecord>();
    var dr = new SqlDataRecord(
                                new SqlMetaData("Id", SqlDbType.Int),
                                new SqlMetaData("Value", SqlDbType.Variant));
    
    dr.SetInt32(0, id);
    dr.SetValue(1, myObject);
    
    dataTable.Add(dr);
    
    [...]
    
    SqlCommand sqlCommand = new SqlCommand("dbo.MyProc");
    var structuredParam = sqlCommand.Parameters.Add("myTableParam", SqlDbType.Structured);
    structuredParam.Value = dataTable;
    


    1. ORA-01797:この演算子の後にはANYまたはALLエラーが続く必要があります

    2. PostgreSQL関数の引数としてのテーブル

    3. SQLServer - テーブルの依存テーブルを見つける方法は?

    4. SQL Server 2008 XPath