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

どのSqlDbTypeがvarBinary(max)にマップされますか?

    長さが-1のSqlDbType.VarBinaryは、少なくとも理論的にはVARBINARY(MAX)と同等です。ただし、タイプ(列挙値ではない)、つまりSqlTypes.SqlBytesもあるため、問題はもう少し複雑です。 使用できます。そして、SqlTypes.SqlFileStreamがあります VARBINARY(MAX)にも使用できます タイプ、FILESTREAMがある場合 属性。

    ただし、問題は、これらの列挙型または型のいずれも、VARBINARY(MAX)の操作に関する実際の問題をカバーしていないことです。 ADO.Netの列:メモリ消費。これらすべてのタイプを「すぐに使用可能」に使用すると、メモリ内に単一の配列として割り当てられた値のコピーが作成されます。これはせいぜいパフォーマンスが低くなりますが、コンテンツが大きくなると、割り当てが失敗するため、使用できなくなります。 。 VARBINARY(MAX)を処理する適切な方法を示す記事がいくつかあります。 コンテンツ全体のメモリ内コピーの作成を回避するストリーミングセマンティクスを使用したADO.Netの値:

    • ASP.NetMVCを介してSQLServerからイメージをダウンロードおよびアップロードする
    • FILESTREAM MVC:SQLServerから画像をダウンロードしてアップロードする


    1. SQLServer2005のデータをExcelに転送またはエクスポートするにはどうすればよいですか

    2. MariaDBクラスターを使用したAmazonAWSでのホットスタンバイの構築

    3. SalesforceデータのEDI形式への変換

    4. MySQLで合計行を追加する方法