易截截图软件、单文件、免安装、纯绿色、仅160KB

SQLSERVER简单触发器

 INSERT触发器
    INSERT及UPDATE触发器经常用于检测触发器所监控表的列及其数据是否符合所定义的规则。它们可以在数据输入表之前,对其进行在定义引用完整性时无法完成的约束检验。
    下面以学生数据库student为例来介绍INSERT触发器的使用。该数据库包括三个表,分别是描述学生情况的“学生档案”表、描述学生成绩的“学生成绩”表student和。描述分组情况的“分组情况”表gro。
 
 
create table student (id numeric(1,0),name varchar(10),sex char(4),class varchar(10),gro numeric(1,0) )
create table gro (class varchar(10),gro numeric(1,0) ,num tinyint)
 
为上面的“学生档案” 表创建一个INSERT触发器instrg,其作用是每新增一名学生而需向“学生档案”表中插入新行时,在“分组情况”表中将其所在小组的人数自动增加1。
 
use mlh
Create Trigger instrg ON [dbo].[student]
FOR Insert
AS
declare @班级 varchar(50) ,@小组 varchar(50),@人数 tinyint
select @班级 = inserted.class,@小组 = inserted.gro from inserted
if exists(select num from gro where @班级 = gro.class and @小组= gro.gro)
begin --bg1
select @人数 = num from gro where @班级= gro.class and @小组 = gro.gro
set @人数 = @人数 + 1
update gro set num = @人数 where @班级 = gro.class and @小组 = gro.gro
end --bg1
 
else
begin --bg2
insert gro values(@班级,@小组,1)
end --bg2
 
UPDATE 触发器
Create Trigger stup On [dbo].[student]
FOR update
AS
Declare @班级 varchar(50) , @小组 numeric(1,0),@人数 tinyint
select @班级 = inserted.class ,@小组= inserted.gro from inserted
if exists(select * from gro where @班级  = gro.class and @小组 = gro.gro)
begin
   update gro set gro.num = gro.num + 1 where @班级  = gro.class and @小组 = gro.gro
end
else
begin
   insert into gro values(@班级,@小组,1)
end
select @班级 = deleted.class ,@小组= deleted.gro from deleted
select @人数 = gro.num from gro where  @班级  = gro.class and @小组 = gro.gro
if @人数 > 1
begin
&


相关文档:

Mysql,SqlServer,Oracle主键自动增长的设置


Mysql,SqlServer,Oracle主键自动增长的设置
1、把主键定义为自动增长标识符类型
在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值。例如:
create table customers(id int auto_increment primary key not null, name varchar(15));
insert into customers(name) values("name1"),("nam ......

SQLServer存储多语言数据的几种方法

SQLServer存储多语言数据的几种方法
http://www.examda.com/ncre/three/db/fudao/20100111/102352311.html
本文概述了在数据库设计中,如何处理多国语言的问题,这里的多国语言是指诸如这样的业务:在ERP软件中,我们在填写客户名称时,除了需要填写客户的中文名称,还需要填写他的英文名称。 一般的,如果是普通的项目型 ......

无法启动SqlServer服务器了怎么办?

SERVER 停止,无法启动,过期了 (评估版2000)(2008-04-25 22:31:17)标签:sql server 无法启动 过期 解决方法 it   
当 SQL Server 2000 评估版的 120 天评估期过期后,SQL Server 将无法启动。
在 Windows 事件查看器应用程序日志中,您可能会看到下面的错误:
SQL Server evaluation period has expired ......

SQLServer 使用备份还原造成孤立用户的解决

     在使用数据库的过程中,经常会遇到数据库迁移或者数据迁移的问题,或者有突然的数据库损坏,这时需要从数据库的备份中直接恢复。但是,此时会出现问题,这里说明几种常见问题的解决方法。 
孤立用户的问题
        比如,以前的数据库的很多 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号