可编程对象

---------------------------------------------------------------------------------------------------------
--可编程对象(基于T-SQL编程)
---------------------------------------------------------------------------------------------------------
--变量
--批处理
--流程控制元素
--游标
--临时表
--动态SQL
--例程
--用户自定义函数
--存储过程
--触发器




---------------------------------------------------------------------------------------------------------
--基于T-SQL编程(变量\批处理\流程控制元素)
---------------------------------------------------------------------------------------------------------
--声明变量,使用变量,调用函数,做逻辑判断和循环处理
--声明变量
declare @变量名 类型名;
set @变量名=值;
select @变量名;
---------------------------------
if 返回true或false的表达式
begin
内容
end
--------------------------------
while(true)
begin
内容
end
----------------------------------
--例子
--求100以内的数的和
declare @sum int;
declare @i int;
set @sum=0;
set @i=0;
while @i<=100
begin
set @sum=@sum+@i;
set @i=@i+1;
end


select @sum
--------------------------
--求100以内所有偶数的和
declare @sum int;
declare @i int;
set @sum=0;
set @i=0;
while @i<=100
begin
if @i%2=0
begin
set @sum=@sum+@i;
end
set @i=@i+1;
end


select @sum


















---------------------------------------------------------------------------------------------------------
--存储过程
--优势:省去解析的过程
--劣势:业务逻辑放到了数据库,不符合分层,维护混乱,无法使用集群(因为存储过程放在了sql实例中了)
---------------------------------------------------------------------------------------------------------
--存储在数据库中的一步一步执行的SQL语句
--执行系统的存储过程
exec sp_databases
.......

--不带参数的存储过程
--------------------
go
create proc u_存储过程名  --修改用alter
as
begin
--内容
select * from test1..vw_SpiltPage;
end
go
--执行存储过程
exec u_存储过程名


--带有参数的存储过程
---------------------




--带有默认参数的存储过程
---------------------




--带有返回值的存储过程
---------------------
go
create proc usp_bankTransfer
@FromAccount char(4),
@ToAccount char(4),
@Money money,
@res int output
as
begin
begin transaction
begin try
update tbBank set balance=balance - @Money where cid=@FromAccount
update tbBank set balance=balance + @Money where cid=@ToAccount
commit
set @res=1;
end try
begin catch
rollback
set @res=0;
end catch
end

---------------------------------------------------------------------------------------------------------
--触发器
---------------------------------------------------------------------------------------------------------
--定义:是一个特殊的存储过程,一般处理备份方面的事务。


--分两种:
instead of 触发器 --触发某个事件,其实是执行另外一件事,即被其它事务取而代之
after 触发器 --


--针对什么操作进行触发? 一般是用在增、删、改


---------------------------------------------------------
--after触发器
create trigger tr_update|delete|insert_触发器名称 on 表名
for|instead of |after
delete|update|insert
as
begin
--SQL语句
end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值