Advertisement
Guest User

Untitled

a guest
Mar 26th, 2017
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.47 KB | None | 0 0
  1. CREATE TRIGGER [dbo].[EmployeeInsert]
  2. ON [dbo].[APP_Employees]
  3. AFTER INSERT
  4. AS
  5. BEGIN
  6. SET NOCOUNT ON;
  7.  
  8. DECLARE @EmployeeID AS bigint
  9.  
  10. SELECT @EmployeeID = ID FROM inserted
  11.  
  12. UPDATE [dbo].[APP_Employees]
  13. SET [EmployeeTotalNumberOfAnnualLeave] = [EmployeeBalanceTheInitialNumberOfDaysOfAnnualLeaveIn]
  14. WHERE ID=@EmployeeID
  15.  
  16. END
  17. GO
  18.  
  19. SELECT @EmployeeID = ID FROM inserted
  20.  
  21. -- drop the existing trigger
  22. DROP TRIGGER [dbo].[EmployeeInsert]
  23. GO
  24.  
  25. -- create a new trigger
  26. CREATE TRIGGER [dbo].[EmployeeInsert]
  27. ON [dbo].[APP_Employees]
  28. AFTER INSERT
  29. AS
  30. BEGIN
  31. SET NOCOUNT ON;
  32.  
  33. -- update your table, using a set-based approach
  34. -- from the "Inserted" pseudo table which CAN and WILL
  35. -- contain multiple rows!
  36. UPDATE [dbo].[APP_Employees]
  37. SET [EmployeeTotalNumberOfAnnualLeave] = i.[EmployeeBalanceTheInitialNumberOfDaysOfAnnualLeaveIn]
  38. FROM Inserted i
  39. WHERE ID = i.ID
  40. END
  41. GO
  42.  
  43. -- 1.1) Create the base of table 'MAN'
  44. CREATE TABLE [dbo].[MAN](
  45. [DATETIME] [datetime] NOT NULL
  46. ) ON [PRIMARY]
  47. GO
  48.  
  49. -- 1.2) Insert a record in it
  50. INSERT INTO MAN VALUES ('04/06/1982')
  51. GO
  52.  
  53. -- 1.3) Add some computed columns
  54. ALTER TABLE MAN
  55. ADD
  56. [DAY] AS DATENAME(DAY, [DATETIME]),
  57. [MONTH] AS MONTH([DATETIME]),
  58. [YEAR] AS DATENAME(YEAR, [DATETIME]),
  59. [DAYNAME] AS DATENAME(WEEKDAY, [DATETIME]),
  60. [AGE] AS DATEDIFF(YEAR, [DATETIME], GETDATE())
  61. GO
  62.  
  63. -- 1.4) See the result
  64. SELECT * FROM MAN
  65.  
  66. SELECT * FROM MAN
  67. -- 2.1) Create the table 'MAN' with all needed columns
  68. CREATE TABLE [dbo].[MAN](
  69. [DATETIME] [datetime] NOT NULL,
  70. [DAY] [int] NULL,
  71. [MONTH] [int] NULL,
  72. [YEAR] [int] NULL,
  73. [DAYNAME] [nvarchar](10) NULL,
  74. [AGE] [int] NULL
  75. ) ON [PRIMARY]
  76. GO
  77.  
  78. -- 2.2) Create Insert and update triggers in order to calculated values of the rest fields while inserting/updating
  79. CREATE TRIGGER [dbo].[trCalculateRemainingDateFields] ON MAN
  80. AFTER INSERT, UPDATE
  81. AS
  82. BEGIN
  83. SET NOCOUNT ON;
  84.  
  85. UPDATE MAN
  86. SET
  87. [DAY] = DATENAME(DAY, MAN.[DATETIME]),
  88. [MONTH] = MONTH(MAN.[DATETIME]),
  89. [YEAR] = DATENAME(YEAR, MAN.[DATETIME]),
  90. [DAYNAME] = DATENAME(WEEKDAY, MAN.[DATETIME]),
  91. [AGE] = DATEDIFF(YEAR, MAN.[DATETIME], GETDATE())
  92.  
  93. FROM Inserted i
  94. WHERE i.[DATETIME] = MAN.[DATETIME]
  95. END
  96. GO
  97.  
  98.  
  99. -- 2.3) Insert a record in it
  100. INSERT INTO MAN ([DATETIME]) VALUES ('04/06/1985')
  101. GO
  102.  
  103. -- 2.4) See the result
  104. SELECT * FROM MAN
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement