国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

sql server 存儲過程及觸發器

2024-08-31 00:51:41
字體:
來源:轉載
供稿:網友

一直都想找個時間研究一下,今天花了一天時間去實踐了一下,非常有用。可以說是數據庫里面的精華吧。還好我今天去弄了幾下,雖說都是些簡單的語句,但是最起碼知道以后在項目該怎么去做了。 閑話少說。進入正題。

1.創建SQL存儲過程:
   CREATE PROCEDURE stu_proc1//指定過程名
    @Sno varchar(50)  ='7000803068',//定義參數以及默認值
  AS//執行SQL語句
    select * from Student
    where Sno=@Sno
 GO

Declare @XXX聲明變量
set @XXX=XXX設定變量值
同時里面也有if else while等語句不過得加上begin end

2.執行存儲過程
  Execute stu_proc1 @Sno='XXX' @Sname='XXXX'

其實可以把存儲過程看成一個C語言的函數。函數名是存儲過程名,形參是也是里面的參數,里面還有局部變量,同時也可設定值。也可以返回值,用return語句。里面可以用到if else,while語句。但是C里面的函數功能會更大,不能等同,只能做比較。寫存儲過程也有點像寫個函數一樣。

同時在java語言中也可以調用存儲過程,類似C里調用函數。設定形參值。

3.JDBC中調用存儲過程
 CallableStatement對象
 String sql="{call stu_proc1(?,?)}";
 String firstVal="";
 String secondVal="";
 Class.forName();
 Connection conn=DriverManager.getConnection("","","");
 CallableStatement stmt=conn.prepareCall(sql);
 stmt.setString(1,firstVal);
 stmt.setString(2,secondVal);
 ResultSet rs=stmt.executeQuery();

存儲過程可以提高訪問數據庫的性能和速度。
觸發器是一種特殊的存儲過程,主要用于update,insert,delete這三種語句,主要是處理表與表之間的關聯,也就是約束性吧。同時有二個表inserted(插入表),deleted(刪除表)而update可以看成先刪除,然后插入.比如,當要刪除一個學生時,同時該學生的選課記錄也是要刪除的,這時可以在學生表進建個觸發器就可以實現這種功能。

觸發器就是可以進行關聯操作,而單單SQL語句不能做到這一點。

CREATE TRIGGER StudentDelete ON [dbo].[Student]
FOR  DELETE
AS
delete from SC where SC.Sno=(select Sno from deleted)

語句形式跟存儲過程是一致的,因為觸發器本身就是一種存儲過程.


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高要市| 天全县| 柳林县| 唐海县| 罗江县| 赤峰市| 黑龙江省| 梁平县| 九寨沟县| 吉安县| 临夏市| 舒城县| 华池县| 常德市| 温宿县| 崇礼县| 休宁县| 敦煌市| 布尔津县| 湖北省| 永善县| 玛沁县| 维西| 开化县| 邻水| 古蔺县| 周口市| 浏阳市| 上蔡县| 都安| 深泽县| 聊城市| 通化市| 墨江| 余干县| 梁河县| 石棉县| 合江县| 汉寿县| 瑞安市| 平阳县|