Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE TRIGGER [dbo].[EmployeeInsert]
- ON [dbo].[APP_Employees]
- AFTER INSERT
- AS
- BEGIN
- SET NOCOUNT ON;
- DECLARE @EmployeeID AS bigint
- SELECT @EmployeeID = ID FROM inserted
- UPDATE [dbo].[APP_Employees]
- SET [EmployeeTotalNumberOfAnnualLeave] = [EmployeeBalanceTheInitialNumberOfDaysOfAnnualLeaveIn]
- WHERE ID=@EmployeeID
- END
- GO
- SELECT @EmployeeID = ID FROM inserted
- -- drop the existing trigger
- DROP TRIGGER [dbo].[EmployeeInsert]
- GO
- -- create a new trigger
- CREATE TRIGGER [dbo].[EmployeeInsert]
- ON [dbo].[APP_Employees]
- AFTER INSERT
- AS
- BEGIN
- SET NOCOUNT ON;
- -- update your table, using a set-based approach
- -- from the "Inserted" pseudo table which CAN and WILL
- -- contain multiple rows!
- UPDATE [dbo].[APP_Employees]
- SET [EmployeeTotalNumberOfAnnualLeave] = i.[EmployeeBalanceTheInitialNumberOfDaysOfAnnualLeaveIn]
- FROM Inserted i
- WHERE ID = i.ID
- END
- GO
- -- 1.1) Create the base of table 'MAN'
- CREATE TABLE [dbo].[MAN](
- [DATETIME] [datetime] NOT NULL
- ) ON [PRIMARY]
- GO
- -- 1.2) Insert a record in it
- INSERT INTO MAN VALUES ('04/06/1982')
- GO
- -- 1.3) Add some computed columns
- ALTER TABLE MAN
- ADD
- [DAY] AS DATENAME(DAY, [DATETIME]),
- [MONTH] AS MONTH([DATETIME]),
- [YEAR] AS DATENAME(YEAR, [DATETIME]),
- [DAYNAME] AS DATENAME(WEEKDAY, [DATETIME]),
- [AGE] AS DATEDIFF(YEAR, [DATETIME], GETDATE())
- GO
- -- 1.4) See the result
- SELECT * FROM MAN
- SELECT * FROM MAN
- -- 2.1) Create the table 'MAN' with all needed columns
- CREATE TABLE [dbo].[MAN](
- [DATETIME] [datetime] NOT NULL,
- [DAY] [int] NULL,
- [MONTH] [int] NULL,
- [YEAR] [int] NULL,
- [DAYNAME] [nvarchar](10) NULL,
- [AGE] [int] NULL
- ) ON [PRIMARY]
- GO
- -- 2.2) Create Insert and update triggers in order to calculated values of the rest fields while inserting/updating
- CREATE TRIGGER [dbo].[trCalculateRemainingDateFields] ON MAN
- AFTER INSERT, UPDATE
- AS
- BEGIN
- SET NOCOUNT ON;
- UPDATE MAN
- SET
- [DAY] = DATENAME(DAY, MAN.[DATETIME]),
- [MONTH] = MONTH(MAN.[DATETIME]),
- [YEAR] = DATENAME(YEAR, MAN.[DATETIME]),
- [DAYNAME] = DATENAME(WEEKDAY, MAN.[DATETIME]),
- [AGE] = DATEDIFF(YEAR, MAN.[DATETIME], GETDATE())
- FROM Inserted i
- WHERE i.[DATETIME] = MAN.[DATETIME]
- END
- GO
- -- 2.3) Insert a record in it
- INSERT INTO MAN ([DATETIME]) VALUES ('04/06/1985')
- GO
- -- 2.4) See the result
- SELECT * FROM MAN
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement