10.3_instead of觸發器
10.4_inserted、deleted表
10.5_注意事項
觸發器是一種特殊的儲存過程,常常用於實現強制業務規則和資料完整性。觸發器由sql server自動執行,不能由應用程式呼叫,這是它與儲存過程不同的地方,便於保護資料庫的完整性和完全性。
create
trigger trigger_name
[with encryption]
--加密
on table_name
insert
,update
,delete
as--sql過程塊
alter
trigger trigger_name
[with encryption]
--加密
on table_name
forinsert
,update
,delete
as--sql過程塊
drop
trigger trigger_name
create
trigger company_attention
on company
with encryption
forinsert
asprint
'字串'
alter
trigger company_attention
on company
with encryption
forinsert
asprint
'字串'
drop
trigger company_attention
instead of觸發器作用:執行觸發器中的內容,而禁止執行觸發詞觸發器的sql語句
create
trigger
[contract_delete]
on[contract]
instead of
delete
--instead of型別
asbegin
ifexists
(select
count(*
)from contractdetail
where contractid in
(select contractid from deleted)
)--如果這個結果不是0就說明有相關記錄
--列印
print 『合同明細表中有相關記錄,不能刪除』
else
--否則就刪除
delete
from contract
where contractid in
(select contractid from deleted)
end
再次刪除不會再次觸發這個觸發器嗎
inserted表:存放由insert 或update語句的執行而導致要加到該觸發器作用的表中去的任何新行。
deleted表:
存放由delete 或update語句的執行而導致要從被該觸發器作用的表中刪除的任何行。
inserted與deleted表中自帶與操作的表同樣的屬性列
sql server 允許建立的儲存過程引用尚不存在的物件。在建立時,只進行語法檢查。 create trigger必須是批處理中的第一條語句,並且只能應用到乙個表中。
觸發器中不允許以下 transact-sql 語句:alter database 、create database、 disk init 、disk resize 、drop database 、load database 、load log 、reconfigure 、restore database 、restore log
第十章 迭代器
迭代器 我們已經知道,可以直接作用於for迴圈的資料型別有以下幾種 一類是集合資料型別,如list tuple dict set str等 一類是generator,包括生成器和帶yield的generator function。這些可以直接作用於for迴圈的物件統稱為可迭代物件 iterable。...
第十章 建立計算字段
建立在資料庫表中的資料一般不是應用程式所需要的格式。我們需要從資料庫中檢索出轉換 計算或格式化過的資料。計算欄位並不實際存在於資料庫表中,計算欄位是執行時在select語句內建立的。字段 field 基本上與列 column 的意思相同,經常互換使用。不過資料庫一般稱之為列,而術語字段通常用在計算欄...
第十章專案溝通管理
專案溝通管理包括為確保專案資訊及時且恰當地生成 收集 發布 儲存 呼叫並最終處置所需的各個過程。最好使用互動式溝通。有效果 有效率 方法特點 適用場景 正式書面 內容嚴謹 可追溯 易儲存 根據合同進行的溝通 終止某 商的工作 正式口頭 速度快 受眾多,具有正式意義不易追溯 專案啟動會 非正式口頭 效...