关于T-SQL触发器的问题...

来源:百度知道 编辑:UC知道 时间:2024/06/08 14:19:31
--====建立Test数据库====
Create database Test
Go
Use Test
go
--====建立 [部门信息]表====
Create table [部门信息]
(
[部门编号] varchar(3) Primary key,
[部门名称] varchar(10) not null,
[员工人数] int
)
go
--====建立[员工信息]表====
Create table [员工信息]
(
[员工编号] varchar(4) Primary key,
[员工姓名] varchar(10) not null,
[性别] varchar(2) Default'男',
[出生年月] datetime ,
[入职时间] datetime,
[部门编号] varchar(3),
Constraint ck foreign key([部门编号]) references [部门信息]([部门编号])
)
go
问题:Transact-SQL 为“员工信息”表创建名称为 dEmployee 的触发器,对应操作为INSERT、DELETE和UPDATA。要求:每当某部门有新员工入职或离职时,自动统计该部门的员工人数,更新到“部门信息”表的“员工人数”字段中。
各位帮忙解决一下...谢谢..写出T-SQL语句..
加多一问:Transact-SQL 为“员工信息”表创建名为uEmployee触发器,对应操作为INSERT,实现当对“员工信息”表插入新的数据时,自动将“入职时间”为当前系统时间。
本人属于初学者级别,对触发器的了解真的很少,请各位帮帮忙了..今晚就要...
我试过用INSERT都记录不了系统时间....请各位尽快给我一个解决方案好吗?最好就运行成功的...分我可以再追加..

/*这里,我试写一个了,参考一下,看能不能用了,*/
/*插入触发器*/
go
create trigger dEmployee_insert
on 部门信息
for insert
as
begin
update 部门信息
set 员工人数=员工人数+1
end
/* 册除的触发器*/
go
create trigger dEmployee_delete
on 部门信息
for delete
as
begin
update 部门信息
set 员工人数=员工人数-1
end
go
/*对于更新好人数不变就不用写了*/

入职时间这个字段可以直接定义为时间戳,以后都不需要管这个字段就可以了。每次insert的时间就会记下时间了