SQL SERVER複習筆記06

2021-06-09 18:50:53 字數 2586 閱讀 9652

--十二.儲存過程

--建立儲存過程

create procedure book1_pr1

asselect book1.書名 from book1

--執行儲存過程

execute book1_pr1

--檢視儲存過程

sp_helptext book1_pr1

--帶輸入引數的儲存過程

create proc book1_pr2

@書名 char(20)

asselect * from book1

where 書名=@書名

--執行帶參儲存過程

exec book1_pr2 @書名='sql資料庫'

create proc book1_pr3

@書名 char(20), @book1num smallint output

asset @book1num=

(select count(*) from book1

where 書名=@書名

)print @book1num

--執行時,輸入引數要賦值,面輸出引數不用賦值

declare @書名 char(20), @book1num smallint

set @書名='sql資料庫'

exec book1_pr3 @書名,@book1num

--修改,加密,重新編譯儲存過程

alter proc book1_pr1

@出版社 varchar(20)

/*with encryption*/

with recompile --在定義時重新編譯

asselect * from book1

where 出版社=@出版社

declare @出版社 varchar(20)

set @出版社='中山大學'

exec book1_pr1 @出版社

--執行時重新編譯

declare @出版社 varchar(20)

set @出版社='中山大學'

exec book1_pr1 @出版社 with recompile

--通過系統儲存過程重新編譯

exec sp_recompile book1_pr1

--十三.觸發器,insert/delete/update

--建立觸發器

create trigger book1_tr1

on book1

for insert --觸發器和觸發語句都會執行

asprint '插入成功'

insert into book1 values ('134472','172','sql資料庫',35,'中山大學','03-13-2008')

--觸發器執行,但觸發語句不執行,用instead of

create trigger book1_tr2

on book1

instead of delete

asprint '不能刪除!'

delete from book1 --測試一下

select * from book1 --發現表中資料並沒有刪除

--if update(column_name),不用instead of,而是用rollback transaction來回滾

create trigger book1_tr3

on book1

for update

asif update(定價)

begin

rollback transaction

end--測試一下

update book1

set 定價=45

where 編號='101172'

/*訊息 3609,級別 16,狀態 1,第 1 行

事務在觸發器中結束。批處理已中止。

*/--管理觸發器

--1.sp_help trigger_name,了解觸發器的一般資訊,如名稱,建立時間等

exec sp_help book1_tr3

--2,sp_helptext trigger_name,檢視trigger的定義資訊

exec sp_helptext book1_tr3

--3,sp_depends trigger_name | table_name,檢視觸發器所引用的表或表涉及的所有觸發器和儲存過程

exec sp_depends book1_tr3

exec sp_depends book1

--4,sp_helptrigger table_name,檢視表所涉及所有觸發器的資訊

exec sp_helptrigger book1

--5,通過系統表來檢視觸發器的資訊

select *

from sysobjects

where type='tr'

--6,禁止觸發器

alter table book1

disable trigger trigger_name | all

--啟用觸發器

alter table book1

enable trigger trigger_name | all

資料整理,SQL Server ,面試前複習筆記

t sql 要掌握的知識點分類 sql 是一門 ansi 的標準計算機語言,用來訪問和運算元據庫系統。sql 語句用於取回和更新資料庫中的資料。sql 可與資料庫程式協同工作,比如 ms access db2 informix ms sql server oracle sybase 以及其他資料庫系...

學習筆記06

do while 水仙花 從100到999 各個位數的立方和相加等於這個數本身就是乙個水仙花數 include intmain void i while i 999 return0 pow 用來計算以x為底的y次方值 include 上述式子可改為 if pow a,3 pow b,3 pow c,...

閱讀筆記06

閱讀構建之法11 13章。軟體分析和設計方法。軟體進行描述的方法 直接進行文字描述 例如設計思路等 進行圖形你描 流程圖 和漢字組合進行描述 和注釋進行描述 等四種主要方法。之前進行的開發練習,除 和漢字描述外,都進行了訓練,並一直堅持。當然,還有其他的軟體描述方法,而這些方法並沒有高低貴賤之分,不...