Monitorowanie zmian w danych

Sign in to queue

The Discussion

  • User profile image
    GrzegorzLyp

    Poniższy przykład pokazuje, że rekord dostaje merytorycznie błędne daty obowiązywania powstałe z początku transakcji. Jeśli ktoś użyje danych "brudnych" (np. z nolock) to udowodnić że te dane miały odpowiednią wartość nie ma jak. Jaki jest powód nie wstawiania najbardziej bieżących dat ?

     

    create table dbo.test_table (id int not null IDENTITY(1,1) PRIMARY KEY CLUSTERED, Opis varchar(100),
    SYSSTART DATETIME2 GENERATED ALWAYS AS ROW START,
    SYSEND DATETIME2 GENERATED ALWAYS AS ROW END,
    PERIOD FOR SYSTEM_TIME (SYSSTART, SYSEND))
    GO
    ALTER TABLE dbo.test_table SET (SYSTEM_VERSIONING = ON (HISTORY_TABLE = dbo.test_table_hist))
    GO
    begin tran
    go
    insert into dbo.test_table default values
    go
    waitfor delay '00:00:05';
    go
    update dbo.test_table set Opis = ''
    go
    waitfor delay '00:00:05';
    go
    delete from dbo.test_table
    go
    select * from dbo.test_table_hist
    go
    rollback

Add Your 2 Cents