最近、MS SQL Server 2005 インスタンスを MS SQL 2012 にアップグレードし始めました。VM を作成し、MS SQL Server をインストールし、バックアップを使用して新しいサーバーに DB を作成しました。
Visual Studio で古い接続を新しい接続に切り替えていましたが、コマンドを含む OLE DB コマンド変換の接続を切り替えたときに"UPDATE JOB SET Active = 0 WHERE Job.JobId = ?"
、次のエラーを受け取りました。
エラー 1 検証エラー。
Sync Jobs: Sync Jobs: SSIS Error Code
DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code:
0x80004005. An OLE DB record is available. Source: "Microsoft SQL
Server Native Client 11.0" Hresult: 0x80004005 Description: "The
metadata could not be determined because statement 'REVERT
--Check if SSB is enabled in this database' in procedure 'sp_send_dbmail'
does not support metadata discovery.". JobPack.dtsx 0 0
エラー 2 検証エラー。
Sync Jobs: Sync Jobs: Unable to retrieve
destination column descriptions from the parameters of the SQL
command. JobPack.dtsx 0 0
この「SSB」が新しいDBでオンになっていることを確認しましたが(そうではありませんでした)、有効にした後でもこのエラーを解決できません。古いサーバーに戻すと、正常に動作します...
更新: 電子メールの手順がどこで発生したのか疑問に思っていたところ、DB には更新時に電子メールを送信するトリガーがあることがわかりました。このトリガーを無効にすると、SSIS パッケージの問題が解決されます。このトリガーが有効になっているときに BIDS がエディターでエラーを表示する理由はまだわかりません。