0

SQL Server で非常に奇妙な問題が発生しています。

最近作成した2つのテーブルが毎晩自動的に切り捨てられています...

私のON DELETEトリガーは削除トランザクションをログに記録しないため、切り捨てられていることは間違いありません。さらに、いくつかのログ手順を使用して、これが夜の 01:50 から 01:52 の間に発生することがわかりました。そのため、サーバーでスケジュールされたジョブを確認しましたが、何も見つかりませんでした。この問題は、本番サーバーでのみ発生します。それが非常に重要な理由です。複製されたテスト サーバーでは、すべて正常に動作します。

トランザクション ログ エントリ (fn_dblog) を確認しましたが、トランケート ログは見つかりませんでした。

テーブルを切り捨てるプロセス/ジョブ/ユーザーを見つけるのに役立つヘルプやヒントをいただければ幸いです。

ありがとう

4

4 に答える 4

1

これに関する個人的な経験から、最初のステップとして、これが DROP ステートメントまたは TRUNCATE ステートメントのどちらが原因で発生しているかを判断します。可能な答えを提供するには、SSMS を使用して、オブジェクト エクスプローラーで DB 名を右クリックし、マウスを [レポート] >> [標準レポート] の上に置き、[スキーマの変更履歴] をクリックします。

これにより、オブジェクト名とタイプの列を含む簡単なレポートが開きます。テーブルの名前を見つけ、+ 記号をクリックして展開すると、そのテーブルのオブジェクト レベルで発生した履歴が表示されます。そこに DROP ステートメントが見つかった場合、少なくとも探しているものがわかります。同様に、DROP ステートメントがない場合は、TRUNCATE を探している可能性があります。

于 2015-09-09T11:39:59.930 に答える
0

助けてくれたみんな、どうもありがとう!

切り捨ての理由がわかりました。外部アプリでした。

したがって、同じ問題が発生した場合は、データにアクセスできるアプリケーションを確認することをお勧めします。

于 2015-09-10T09:15:40.300 に答える
0

以下のクエリで確認してください。

@var を varchar(max)='tblname' として宣言します。EXEC sp_depends @objname =@var;

テーブルを使用しているストアド プロシージャ名の数を返し、誤って記述した場合は切り捨てられたクエリを検索します。

于 2015-09-09T09:50:40.547 に答える