SQL触发器语句

来源:百度知道 编辑:UC知道 时间:2024/07/05 14:00:27
为“员工信息”表创建名称为 dEmployee 的触发器,对应操作为INSERT、DELETE和UPDATA。要求:每当某部门有新员工入职或离职时,自动统计该部门的员工人数,更新到“部门信息”表的“员工人数”字段中。

use Test
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [dEmployee]
ON[员工信息]for INSERT,DELETE,UPDATE
AS
BEGIN

SET NOCOUNT ON;
UPDATE [部门信息]
set[部门信息].[员工人数]= [部门信息].[员工人数]+1
DELETE FROM[部门信息]
where
[部门信息].[员工人数]= [部门信息].[员工人数]+1
END
GO

CREATE trigger dEmployee on dbo.员工信息 after update,insert,delete
AS
set nocount on
declare @branch_d nvarchar(50),@branch_i nvarchar(50),@i int
select @branch_d=部门(字段) from deleted
select @branch_i=部门(字段) from inserted
set @i=(select count(*)from 员工信息 where 部门(字段)=@branch_d or 部门=@branch_i )
update 部门信息
set 员工人数=@i where 部门(字段)=@branch_d or 部门=@branch_i
set nocount off
go