フィールドのあるテーブルがありVARBINARY(MAX)
ます(SQL Server 2008 with FILESTREAM
)
私の要件は、本番環境にデプロイするときに、特定の順序で実行されるSQLスクリプトのグループのみをITチームに提供できることです。私が本番環境で作成している新しいテーブルには、このVARBINARY(MAX)
フィールドがあります。通常、新しいテーブルを使用して、CREATE TABLE
スクリプトをスクリプト化します。また、使用する必要のあるデータがある場合は、INSERT
スクリプトを作成します。それほど複雑ではありません。
しかし、を使用すると、ステートメントVARBINARY(MAX)
の生成に使用していたストアドプロシージャは、そのテーブルで失敗します。INSERT
そのフィールドを選択し、印刷し、コピーし、16進数に変換するなどしてみました。それに関する主な問題は、フィールド内のすべてのデータが選択されないことです。チェックを行いDATALENGTH([FileColumn])
、ソース行に1,004,382バイトが含まれている場合、再挿入時にコピーまたは選択されたデータを取得できる最大値は8000です。したがって、基本的には切り捨てられた(つまり無効な)データです。
どうすればこれをより良くすることができますか?私はこれを狂ったようにグーグルで試しましたが、何かが足りないに違いありません。ファイルシステムにアクセスできないことを忘れないでください。これはすべてスクリプト化する必要があります。