はじめに、この質問に答えるコマンドを以前に見たことがありますが、今はそれを見つけることができないため、問題を解決する単一の SQL ステートメントを探しています。
ある時点で SQL Server 2000 データベースに 2 つのパブリケーションがありましたが、その後それらを削除しました。しかし、私のログ ファイルは増大しており、レプリケートされていないトランザクションが含まれているように見え、際限なく増大しています。私はこれを試しました:
EXEC sp_repldone @xactid = NULL, @xact_segno = NULL, @numtrans = 0, @time = 0, @reset = 1
「データベースは公開されていません」というメッセージが表示されます (公開を削除したので、それは理にかなっています)。私が試してみると:
backup log dbname with truncate_only
ログにレプリケートされていないトランザクションがあり、切り捨てられないというメッセージが表示されます。
以前、パブリケーションが存在しなかったのに、データベースがまだレプリケーションに参加しているとマークされていて、レプリケーションのソースとしてデータベースのフラグを外す 1 行のスクリプトを見つけたので、すぐに問題が解決しました。今は見つけられませんが、また必要になったときに、誰かが光を当てることができれば幸いです。ありがとう!