預存程序與觸發器的應用,預存程序觸發器

來源:互聯網
上載者:User

預存程序與觸發器的應用,預存程序觸發器

一、實驗目的

1、掌握建立預存程序的方法和步驟;

2.掌握預存程序的使用方法;

3.掌握建立觸發器的方法和步驟;

4.掌握觸發器的使用方法。

二、實驗內容

1、預存程序的建立、執行和刪除;

2、觸發器的建立、執行和刪除。

三、實驗步驟

1、預存程序的建立、執行和刪除。

1)使用S_C資料庫中的S表、C表、SC表建立一個帶參數的預存程序—cjjicx。該預存程序的作用是: 當任意輸入一個學生的姓名時,將從三個表中返回該學生的學號、選修的課程名稱和課程成績。

cjjicx的建立語句:

CREATE PROCEDURE cjjicx

@name char(6)

AS

BEGIN

SELECT S.sno, C.cname, SC.grade FROM S, C, SC

WHERE S.sname = @name AND S.sno = SC.sno AND SC.cno = C.cno 

END

 

2)執行cjjicx預存程序,查詢“劉晨”的學號、選修課程和課程成績。

執行語句:

EXEC cjjicx @name = '劉晨'

結果描述:

 

3)使用系統預存程序sp_helptext查看預存程序cjjicx的文本資訊。

查看結果描述:

sp_helptext cjjicx

 

4)使用S-C資料庫中的S表,為其建立一個加密的預存程序—jmxs。該預存程序的作用是:當執行該 預存程序時,將返回電腦系學生的所有資訊。

jmxs建立語句:

CREATE PROCEDURE mxs WITH ENCRYPTION

AS

BEGIN

SELECT * FROM S

END

5)執行jmxs預存程序,查看電腦系學生的情況。

執行語句:

EXEC mxs

結果描述:

SP_HELPTEXT mxs

 

6)刪除jmxs預存程序。

刪除語句:

DROP PROCEDURE mxs

2、觸發器的建立、執行和刪除。

1)在S_C資料庫中建立一個名為insert_xh的INSERT觸發器,儲存在SC表中。該觸發器的作用是: 當使用者向SC表中插入記錄時,如果插入了在S表中沒有的學生學號sno,則提示使用者不能插入記錄, 否則提示記錄插入成功。

insert_xh的建立語句:

CREATE TRIGGER insert_xh ON SC

AFTER INSERT

AS

BEGIN

IF(SELECT COUNT(*) FROM inserted JOIN S ON S.sno = inserted.sno) = 0

BEGIN

ROLLBACK TRAN

PRINT '使用者不能插入記錄'

END

ELSE

PRINT '記錄插入成功'

END

2)為S_C資料庫中的S表建立一個名為dele_stu的DELETE觸發器,該觸發器的作用是禁止刪除S 表中的記錄。

dele_stu的建立語句:

CREATE TRIGGER dele_stu ON S

AFTER DELETE

AS

BEGIN

ROLLBACK TRAN

PRINT '禁止刪除'

END

3)為S_C資料庫中的SC表建立一個名為update_grade的UPDATE觸發器,該觸發器的作用是禁止更 新SC表中的grade欄位的內容。

update_grade的定義語句:

CREATE TRIGGER update_grade ON SC

FOR INSERT, UPDATE

AS

DECLARE @grade1 INT;

DECLARE @grade2 INT;

SELECT @grade1 = inserted.grade FROM inserted

SELECT @grade2 = deleted.grade FROM deleted

BEGIN

IF(@grade1 != @grade2)

BEGIN

PRINT '不能修改分數'

ROLLBACK TRAN

END

END

4)刪除update_grade觸發器。

刪除update_grade觸發器的命令:

DROP TRIGGER update_grade

四、實驗總結

最最基礎的

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.