freetds を使用する pymssql を使用して SQL Server に接続する開発者がいます。彼のスクリプトは、MySQL DB の値に基づいて SQL 挿入クエリを動的に生成します。
ステートメントは適切に解析され、SQL プロファイラーで表示すると、適切な開始トランザクション/コミットが含まれています。SQLでUSEを発行するたびに表示される「変更されたデータベースコンテキストを...」にする唯一の「ユーザーエラーメッセージ」。バッチが完了すると、トランザクション ログ イベント「ロールバック」が発生し、挿入されたすべてのレコードが削除されます。
XACT_ABORT_OFF を使用していないのは、'change db context to' が影響を受けるのを見たことがないからです。
誰かがこれについて何か考えや経験を持っていますか? ありがとう!
[編集]: プロファイラーからコピーされたコードは、同じユーザーを使用して SSMS で正常に動作し、トリガーはありません。
[2 回目の編集]: SQL プロファイラ内で、eventsubtype の下に「rollback」を含む「TransactionLog」エントリが表示されますが、TM:Rollback Tran はありません。