40

テーブルに対して「」、「」 、「」、「」 、「 INSERT」を実行する多くのクエリを実行します。これらのクエリを開発するとき、クエリのさまざまな部分が機能することをテストするために実行される中間ステップが実行され、テーブルが変更される可能性があります。テーブル内のデータ。SELECTUPDATEALTER

データやテーブル構造を実際に変更せずに、クエリのドライ ランを実行して、SQL Management Studio で結果を表示することは可能ですか?

現時点では、データベースをバックアップして、クエリを実行する必要があります。機能する場合は問題ありませんが、そうでない場合はデータベースを復元する必要があり (これには約 1 時間かかります)、データベースの復元にかか​​る時間を無駄にしないようにしています。

4

2 に答える 2

80

SQL トランザクションを使用して変更を行い、元に戻します。

スクリプトを実行する前に:

BEGIN TRANSACTION;

スクリプトを実行し、チェックを行った後:

ROLLBACK TRANSACTION;

スクリプトのすべての変更は取り消されます。

COMMIT注:スクリプトに a がないことを確認してください。

于 2013-11-07T13:55:05.980 に答える
7

以下に示すように、トランザクションを開始し、テーブル操作を実行し、ロールバックします。

BEGIN TRAN

UPDATE  C
SET column1 = 'XXX'
FROM table1 C

SELECT *
FROM table1
WHERE column1 = 'XXX'

ROLLBACK TRAN

これにより、このトランザクションの開始以降、最後のコミット以降に実行されたすべての操作がロールバックされます。

于 2014-10-17T16:27:44.310 に答える