--十二.儲存過程
--建立儲存過程
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章。軟體分析和設計方法。軟體進行描述的方法 直接進行文字描述 例如設計思路等 進行圖形你描 流程圖 和漢字組合進行描述 和注釋進行描述 等四種主要方法。之前進行的開發練習,除 和漢字描述外,都進行了訓練,並一直堅持。當然,還有其他的軟體描述方法,而這些方法並沒有高低貴賤之分,不...