存儲過程
一.定義
存儲過程是一組為完成特定功能的SQL語句集,經編譯后存儲在數據庫中,用戶通過制定存儲過程
的名字並給出參數來執行它,通常狀況下將功能很復雜的語句編寫為存儲過程
二.語句
1.格式
Create proc 存儲過程名 AS 相關操作 go
exec 存儲過程名
2.實例
(1)創建存儲過程test
當往groupinfo中加入信息時,更新點數
(2)修改過程函數名
(3)刪除存儲過程
1 create proc test 2 as 3 declare @age int //聲明變量 4 select @age=age from userinfo where uerid=2 //變量賦值 5 insert into groupinfo values("新發表的文章") 6 update userinfo set age=@age+1 where userid=2 7 go 8 9 sp_rename test,newproc //將存儲過程重命名 10 exec newproc 11 12 drop proc newproc //刪除存儲過程
(4)declare 變量名 變量類型; 用於變量聲明
(5)select @age=age....//用於變量賦值
三.存儲過程的特點
(1)可以在單個存儲過程中執行一系列SQL語句
(2)可以從自己的存儲過程中引用其他存儲過程
(3)存儲過程運行並保存在服務器中
(4)存儲過程具有安全特性和所有權特性,可以附加到他們的證書
(5)存儲過程可以強制應用程序的安全性
觸發器
觸發器是一種特殊的存儲過程,觸發條件不是由管理員手動執行的,而是自動的。
觸發器分析的比較好的博主:
(1)http://blog.csdn.net/pengpegv5yaya/article/details/8645261 總結了觸發器的基本語法
(2)http://blog.csdn.net/lenotang/article/details/3329636 以存取款為實例,分析了Insert,delete,update的過程
在觀看博文需要弄懂的基本知識:
(1)select * Into table1 from table where 查詢條件
前提是table1不存在,此時,創建table1表,根據查詢條件查詢的數據插入到table1中
Insert into table1 select * form table1
前提是table1存在,此時將從table中查詢的數據插入到table1中
(2)raiserror 作用:拋出異常
raiserror('交易日期不允許修改');//拋出異常,異常原因為 交易日期不允許修改
(3)rollback transication //事務撤銷回退