sql >> データベース >  >> RDS >> Sqlserver

切り捨てられたテーブルからデータを回復する方法

    コードで TRANSACTIONS を使用すると、TRUNCATE をロールバックできます。トランザクションが使用されておらず、TRUNCATE 操作がコミットされている場合、ログ ファイルから取得できません。 TRUNCATE は DDL 操作であり、ログ ファイルには記録されません。

    現在のセッションが閉じられていない場合、DELETE と TRUNCATE の両方を TRANSACTION で囲むとロールバックできます。 TRUNCATE が TRANSACTION で囲まれたクエリ エディターで記述され、セッションが閉じられている場合はロールバックできませんが、DELETE はロールバックできます。

    USE tempdb
    GO
    -- Create Test Table
    CREATE TABLE TruncateTest (ID INT)
    INSERT INTO TruncateTest (ID)
    SELECT 1
    UNION ALL
    SELECT 2
    UNION ALL
    SELECT 3
    GO
    -- Check the data before truncate
    SELECT * FROM TruncateTest
    GO
    -- Begin Transaction
    BEGIN TRAN
    -- Truncate Table
    TRUNCATE TABLE TruncateTest
    GO
    -- Check the data after truncate
    SELECT * FROM TruncateTest
    GO
    -- Rollback Transaction
    ROLLBACK TRAN
    GO
    -- Check the data after Rollback
    SELECT * FROM TruncateTest
    GO
    -- Clean up
    DROP TABLE TruncateTest
    GO
    


    1. 単一の列値を選択し、それを変数oraclesqlに格納します

    2. g++を使用したMySQLライブラリへの未定義の参照

    3. JSON_QUERY()SQL Server(T-SQL)の例

    4. 数値から小数値を取得する信頼できる方法は何でしょうか?