一、TSQL基本编程
1、定义变量 :declare @变量名 数据类型变量名前面必须加"@"符号
declare @aaa int;
declare @bbb nvarchar(200);
2、赋值: set @变量名 = 值 select @变量名 = 值 -- 好用
select @bbb ='哈哈';
3、取值打印: select @变量名 print @变量名
select @bbb;
print @bbb;
select top 1 name from Student; --从Student表中name列第一行数据取出来
4、分支语句
if @aaa>@bbb
begin
语句。。。。
end
else
begin
....
end
5、循环语句:
注意循环四要素:初始条件,循环条件,循环体,状态改变
declare @a int;
select @a = 1; --初始条件
while @a<=10 --循环条件
begin
select @a; --循环体
select @a=@a+1; --状态改变
end
二、存储过程:将一堆代码放到存储过程中,可以一句话调用这些代码
相当于C#中的函数
1、创建一个存储过程 Jiafa
create proc Jiafa
@a int,
@b int
as
return @a+@b;
2、调用该存储过程
exec Jiafa 5,10
打印结果:
declare @ccc int; --定义一个变量
exec @ccc=Jiafa 5,10; --把加法的结果赋给变量ccc
select @ccc; --打印ccc
3、存储过程常用用法:
将查看表的代码放在存储过程中,在使用的时候只需调用存储过程exec SelectAll 就可
create proc SelectAll
as
select * from Student
select * from Score
select * from Course
select * from Teacher
exec SelectAll
三、触发器
一个特殊的存储过程,没办法直接调用它,而是通过增删改查的动作来触发它。
一个表的一个动作只能有一个触发器。
create trigger 哪个表的哪个动作 --创建一个触发器+ 名字
on 表名 --针对于哪一个表写的触发器
for 动作 --针对于哪一个动作触发之后的触发器
instead of 动作 --针对于哪一个动作执行替换
as
触发器内容
creat trigger users_delete
on users
for delete
as
select * from users
触发器常用用法:级联删除
要删除class表中的数据 因为class为主键表 直接删除删除不掉所以用触发器来实现。
在class表中遇到delete 时触发,先把外键表中对应的数据删除,再把主键表中的数据删除。