SQLServer令总结 联系客服

发布时间 : 星期一 文章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