发布时间 : 星期一 文章SQLServer令总结更新完毕开始阅读38bdbc8327fff705cc1755270722192e453658a0
删除表的结构
drop table 表名
子查询
Select 字段 from 表(select查询)
子查询就是内层查询产生一个用于外层查询的条件 子查询经常使用的是条件运算符(>,<,<=,>=,=,!=) 子查询与in联合使用经常用于判断一列数据
子查询与exists联合使用经常用于判断一张表的字段
触发器
1。触发器:是一种特殊存储过程,它能对有触发器的表中的数据进行保护. 2。触发器主要通过操作事件(insert,update,delete)进行触发而被自动执行, 不能被调用,也不能传递参数
3。a)触发器根据数据修改语句可分为:insert触发器,update触发器,delete触发器
b)根据引起触发时刻可分为after触发器,instead触发器。 i.after触发器是在执行数据操作之后激发 ii.instead of 触发器是在执行数据操作之前激发
iii.一个表可以建立多个after触发器,可以建立一个instead of触发器
触发器中的inserted表和deleted表
1。触发器运行后在内存中自动创建。
2。他们用于对触发器执行后某些数据的测试条件
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