Sql Server 2008 r2を使用すると、プロセスを自分で実行しながら完全に機能させることができます。ジョブとして実行するように設定すると、バイナリフィールドは毎回2kb(2048文字)に切り捨てられます。以下は、正確に何が起こっているかの詳細です。
これが私のストアドプロシージャの基本的なプロセスです。
- リンクサーバーからユーザー定義のテーブル変数にデータセット(通常は10〜15行)を挿入するSQLステートメントを動的に構築します。(データセットには、基本的に写真に関する情報が含まれています。mime/タイプ、順序、説明、および特定の写真のバイナリ(またはブロブ)。)
- 次に、そのテーブル変数は、データセットを保存する別のストアドプロシージャに渡されます。
前に述べたように、ストアドプロシージャを実行すると、プロセスは完全に機能します。ブロブは完全で、見栄えの良い写真を生成します。ただし、ストアドプロシージャがスケジュールされたジョブを介して実行される場合、バイナリ文字列は2048文字の後で切り捨てられます。そして、これは必ず毎回起こります。
リンクサーバーからデータをプルするために使用しているOPENQUERYステートメントから切り捨てが発生していることを確認できましたが、実行したときではなく、スケジュールされたジョブ中に発生している理由がわかりません。それは許可の問題だと思います。何も引き戻せないだけです。
よろしくお願いします、ウィル