SQLServer令总结 下载本文

内容发布更新时间 : 2024/12/25 9:40:25星期一 下面是文章的全部内容请认真阅读。

3。用户不能直接操作2个表

4。delete触发器将删除的内容放在deleted表中。 insert触发器将添加的内容存在inserted表中。

update触发器将替换前的内容放在deleted表中,将替换后的新内容放在inserted表中。 创建触发器:

CREATE TRIGGER 触发器名 ON 表名/视图名 FOR 触发器类型 AS

??T-SQL语句 例如:

/*如果被删除的学生有考试成绩的话,就不允许删除这个学生*/ create trigger t_stu on tbl_stu for delete as begin

declare @id int

select @id = stuid from deleted

if exists(select * from tbl_cj where stuid = @id) begin

print '学生有成绩,不可删除!!' rollback transaction end

end

delete tbl_stu where stuid = 1007—当删除时,看消息框提示 删除触发器:drop trigger 触发器名 例如:drop trigger t_stu

修改触发器:将创建触发器的create关键字更换成alter

存储过程

存储过程:是存储在sqlserver服务器中的一组预编译过的t-sql语句,当第一次调用后,就驻留在内存中,以后调用时不必再进行编译。优点在于一次编写,多次调用。调用过程在服务器端执行,执行速度快。 存储过程分为:系统存储过程,本地存储过程。 存储过程语法:

create procedure 存储过程名 @参数 参数类型 as

任意数量的T-SQL语句 例如:

create procedure stu_name @stuname char(10) as

select * from stu

调用存储过程 exec 存储过程名 参数 例如:exec stu_name 'aa'

事务

--显示事务 Create table aaa (

Aid int , Aname char(10),

Asex char(2) check(asex in (‘m’,’n’)) )

Set xact_abort on Begin transaction

Intsert into aaa values(101,’aa’,’n’) Intsert into aaa values(102,’bb’,’m’) Intsert into aaa values(103,’cc’,’n’) Intsert into aaa values(104,’dd’,’a’) Intsert into aaa values(105,’ee’,’m’) If @@error = 0 Commit Else Rollback Go

Select * from aaa Drop table aaa

--隐性事务 Set xact_abort on

Set implicit_transactions on Create table aaa (

Aid int , Aname char(10),

Asex char(2) check(asex in (‘m’,’n’)) )

Intsert into aaa values(101,’aa’,’n’) Intsert into aaa values(102,’bb’,’m’) Intsert into aaa values(103,’cc’,’n’) Intsert into aaa values(104,’dd’,’a’) Intsert into aaa values(105,’ee’,’m’) Commit --默认提交事务 Create table aaa (

Aid int,

Aname char (10),

Asex char (2) check (asex in (‘m’,’n’))

)

Intsert into aaa values(101,’aa’,’n’) Intsert into aaa values(102,’bb’,’m’) Intsert into aaa values(103,’cc’,’n’) Intsert into aaa values(104,’dd’,’a’) Intsert into aaa values(105,’ee’,’m’)

/*------------------------------------------------------------------- Commit :提交事务中的一切操作,使得事务对数据库的修改有效 Rollback:回滚事务中的一切操作,使得事务对数据库的操作无效

--------------- --------------------------------------------------- 事务控制语句 1.

设置隐性事务模式

set implicit_transactions on启动隐性事务模式 set implicit_transactions off 关闭隐性事务模式

1) 2) 2.

设置自动回滚模式

set xact_abort on 当事务中任意一条语句产生运行时错误,整个事物将

1)

中止,并整体回滚。 2)

set xact_abort off 当事务中语句产生运行时错误,将中止本条语句并

且回滚本条语句。

注意:set xact_abort 的设置是在执行或运行时设置,而不是在分析时设置。