SQL Server 存儲過程和觸發器


存儲過程

一.定義
存儲過程是一組為完成特定功能的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  //事務撤銷回退

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM