반응형
  1. /**********************************************************************************************
    -- Title : [2k] 표시(Mark)된 트랜잭션 복구하기
    -- Reference : dbRang.com
    -- Key word : restore database, mark, stopatmark
    **********************************************************************************************/

    /* 테스트 테이블 생성 */
    CREATE TABLE Tab_Sample
    ( Col1 int identity(1,1) NOT NULL PRIMARY KEY Nonclustered,
      Col3 int NULL
    )
    GO

    INSERT Tab_Sample VALUES (1)
    INSERT Tab_Sample VALUES (2)
    GO

    /* 트랜잭션 표시 */
    BEGIN TRANSACTION UpdateCol3 WITH MARK 'Update Col3 values'
    GO

    /* DML 발생 */
    UPDATE Tab_Sample
    SET Col3 = Col3 * 100
    GO

    COMMIT TRANSACTION UpdateCol3
    GO

    /* 표시된 트랜잭션 복원 */
    USE master
    GO
    RESTORE DATABASE Sample
    FROM DISK='F:\DBBackup\sample.bak'
    WITH FILE = 1
    ,    NORECOVERY
    GO

    RESTORE LOG Sample
    FROM DISK='F:\DBBackup\sample_log.bak'
    WITH FILE = 1
    ,    STOPATMARK = 'UpdateCol3'
    GO
반응형

+ Recent posts