Advertisement
anchormodeling

Bitemporal triggers

Feb 15th, 2012
652
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 1.81 KB | None | 0 0
  1. -- testing insert trigger
  2. insert into lST_Stage (
  3.     ST_NAM_Stage_Name,
  4.     ST_NAM_ChangedAt
  5. )
  6. values('Arena', DATEADD(DAY, -1, CURRENT_TIMESTAMP));
  7.  
  8. select * from lST_Stage;
  9. select * from ST_NAM_Stage_Name;
  10.  
  11. -- testing update trigger: versioning
  12. update lST_Stage
  13. set
  14.     ST_NAM_Stage_Name = 'Bungalow'
  15. where
  16.     ST_NAM_Stage_Name = 'Arena';
  17.    
  18. select * from lST_Stage;
  19. select * from pST_Stage(DATEADD(DAY, -1, CURRENT_TIMESTAMP));
  20. select * from ST_NAM_Stage_Name;
  21.  
  22. -- testing update trigger: no matching row
  23. update lST_Stage
  24. set
  25.     ST_NAM_Stage_Name = 'Center'
  26. where
  27.     ST_NAM_Stage_Name = 'Arena';
  28.  
  29. select * from ST_NAM_Stage_Name;
  30.  
  31. -- testing update trigger: correction
  32. update lST_Stage
  33. set
  34.     ST_NAM_Stage_Name = 'Center',
  35.     ST_NAM_ErasedAt = DATEADD(year, 1, CURRENT_TIMESTAMP)
  36. where
  37.     ST_NAM_Stage_Name = 'Bungalow';
  38.  
  39. select * from lST_Stage;
  40. select * from pST_Stage(DATEADD(DAY, -1, CURRENT_TIMESTAMP));
  41. select * from lpST_Stage(CURRENT_TIMESTAMP);
  42. select * from ST_NAM_Stage_Name;
  43.  
  44. -- testing update trigger: logical delete
  45. update lST_Stage
  46. set
  47.     ST_NAM_ErasedAt = DATEADD(year, 2, CURRENT_TIMESTAMP)
  48. where
  49.     ST_NAM_Stage_Name = 'Center';
  50.  
  51. select * from lST_Stage;
  52. select * from lpST_Stage(CURRENT_TIMESTAMP);
  53. select * from lpST_Stage(DATEADD(year, 1, CURRENT_TIMESTAMP));
  54. select * from ST_NAM_Stage_Name;
  55.  
  56. -- testing (logical) delete trigger
  57. delete
  58. from
  59.     lST_Stage
  60. where
  61.     ST_NAM_Stage_Name = 'Arena';
  62.    
  63. select * from lST_Stage;
  64. declare @before datetime;
  65. select
  66.     @before = DATEADD(second, -1, ST_NAM_ErasedAt)
  67. from
  68.     ST_NAM_Stage_Name
  69. where
  70.     ST_NAM_Stage_Name = 'Arena';
  71. select * from ppST_Stage(DATEADD(day, -1, CURRENT_TIMESTAMP), @before);
  72. select * from lpST_Stage(CURRENT_TIMESTAMP);
  73. select * from lpST_Stage(DATEADD(year, 1, CURRENT_TIMESTAMP));
  74. select * from ST_NAM_Stage_Name;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement