1.建立乙個加密過程
建立乙個名稱為p_jiami的加密儲存過程,該過程用來查詢一門課程也沒有選修的學生的學號與姓名。最後,執行該儲存過程。
create procedure p_jiami1
with encryption
asselect 學號,姓名
from 學生基本檔案
where 學號not in (select 學號from 成績)
exec p_jiami1
2.建立帶輸入引數的儲存過程
建立乙個帶引數的儲存過程——成績查詢,當任意輸入乙個成績時,該儲存過程將從三個表(「學生基本檔案」表、「課程資訊」表、「成績」表)中查詢出大於或等於該成績的學生學號、姓名、課程名和課程成績。最後,執行儲存過程,查詢獲得學分的學生(即成績大於或等於50分)
gocreate procedure selectscorewithinput
@score int
as select 學生基本檔案.學號,姓名,課程名稱,成績
from 學生基本檔案,課程資訊,成績
where 學生基本檔案.學號= 成績.學號and 成績.課程代號= 課程資訊.課程代號and 成績》= @score
gogo
exec selectscorewithinput @score = 50
go3.建立帶輸出引數的儲存過程
在選課管理庫中建立乙個儲存過程——單科成績分析,當任意輸入乙個存在的課程名時,該儲存過程將統計出該門課程的平均成績、最高成績和最低成績。
create procedure 單科成績查詢
@課程名稱char(10),@**g int output,@max int output,@min int output
asselect @**g=**g(成績) from 課程資訊a,成績b where a.課程代號=b.課程代號and 課程名稱=@課程名稱
select @max=max(成績) from 課程資訊a,成績b where a.課程代號=b.課程代號and 課程名稱=@課程名稱
select @min=min(成績) from 課程資訊a,成績b where a.課程代號=b.課程代號and 課程名稱=@課程名稱
godeclare @**g int
declare @max int
declare @min int
exec 單科成績查詢@課程名稱=高等數學@**g output,@max output,@min output
print @**g,@max,@min
4.建立乙個查詢儲存過程st_proc_bj,該儲存過程將返回計算機系的班級名稱。
create procedure st_proc_bj1
@班級名稱char(10) output
asselect @班級名稱=班級from 學生基本檔案where 專業='計算機'
godeclare @班級名稱int
exec st_proc_bj1 @班級名稱output
print @班級名稱
1. 建立乙個insert觸發器
在student資料庫中建立乙個名為insert_xibu的insert觸發器,儲存在「專業」表中。當使用者向「專業」表中插入記錄時,如果插入了在「系部」表中沒有的系部**,則提示使用者不能插入記錄,否則提示插入成功。
create trigger insert_xibu on 專業
instead of insert
asdeclare @xibu char(2)
select @xibu = 系部.系部**
from 系部,inserted
where 系部.系部**= inserted.系部**
if @xibu <> ''
print '記錄插入成功'
else
begin
print '系部**不存在系部表中,不能插入記錄,插入終止'
rollback transaction
endgo
2. 建立乙個delete觸發器
在student資料庫中建立乙個名為delete_zhye的delete觸發器,儲存在「專業」表中。當使用者刪除「專業」表中的記錄時,如果「班級」表引用了此記錄的***碼,則提示使用者不能刪除記錄,否則提示記錄已刪除。
goif exists (select name from sysobjects
where name= 'delete_zhye' and type = 'tr')
drop trigger delete_zhye
gocreate trigger delete_zhye
on 專業
instead of delete
asif (select count (*) from 班級inner join deleted
on 班級.***碼= deleted.***碼) > 0
begin
print('該專業被班級表所引用,你不可以刪除此條記錄,刪除將終止')
rollback transaction
endelse
print '記錄已刪除'
godelete from 專業where ***碼= 0203
3. 建立乙個update觸發器
在student資料庫中建立乙個名為update_zymc的update觸發器,儲存在「專業」表
中。當使用者更新「專業」表中的專業名稱時,提示使用者不能修改專業名稱。
use student
gocreate trigger update_zymc
on [dbo].[專業]
for update
asif update(專業名稱)
begin
print』不能修改專業名稱』
rollback transaction
endgo
儲存過程與觸發器
附頁 例8 1 建立乙個儲存過程,輸出所有學生的姓名,課程名稱和期末成績資訊。create procedure student score asselect sname,cname,final from student s,course c,score sc where and 例8 2 建立乙個儲...
游標 儲存過程 觸發器
本文介紹了游標 儲存過程 觸發器中利於sql server高效處理資料的方法。關鍵詞 sql server 游標 儲存過程 觸發器 高效處理資料 sql server是一種關係型資料庫管理系統,能夠與windows平台緊密整合,以一種簡單的方式來完成各種複雜的任務。sql server管理大量資料,...
訓練六 觸發器
一 訓練目的 1 熟悉基本rs觸發器 d觸發器 jk觸發器 門控制鎖存器的邏輯功能與特點。2 掌握各功能端的作用。3 學會使用雙蹤示波器波形和比較相位。二 儀器及材料 a tds 4數電實驗箱 雙蹤示波器 數字萬用表。b 參考元件 與非門74ls00 d觸發器74ls74 jk觸發器74ls112。...