freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

[所有分類]第8章存儲過程與觸發(fā)器(編輯修改稿)

2025-01-04 00:14 本頁面
 

【文章內容簡介】 語法: ALTER PROC [ EDURE ] procedure_name [ 。 number ] [ { @parameter data_type } [ VARYING ] [ = default ] [ OUTPUT ] ] [ ,...n ] [ WITH { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ] [ FOR REPLICATION ] AS sql_statement [ ...n ] 修改存儲過程時 , 應該注意以下幾點: 如 果 原 來 的 過 程 定 義 是 使 用 WITH ENCRYPTION 創(chuàng)建的 , 那么只有在 ALTER PROCEDURE中也包含這個選項時 , 這個選項才有效 。 每次只能修改一個存儲過程 。 用 ALTER PROCEDURE更改的存儲過程的權限保持不變 。 例:創(chuàng)建了一個名為 proc_person 的存儲過程,該存儲過程包含姓名和 Email地址信息。然后,用 ALTER PROCEDURE重新定義了該存儲過程,使之只包含姓名信息,并使用ENCRYPTION關鍵字使之無法通過查看 sysments表來查看存儲過程的內容。 程序清單如下: USE adventureworks GO /*創(chuàng)建一個存儲過程,該存儲過程包含姓名和 Email地址信息 */ CREATE PROCEDURE proc_person AS SELECT firstname, lastname, address FROM ORDER BY lastname, firstname GO 下面對該存儲過程進行重新定義。使之只包含姓名信息,并使用 ENCRYPTION關鍵字使之無法通過查看 sysments表來查看存儲過程的內容。 程序清單如下: ALTER PROCEDURE proc_person WITH ENCRYPTION AS SELECT firstname, lastname FROM ORDER BY lastname, firstname GO 修改存儲過程的名稱可以使用系統(tǒng)存儲過程 sp_rename,其語法形式如下: sp_rename 原存儲過程名稱,新存儲過程名稱 另外,通過 SQL Server管理控制臺也可以修改存儲過程的名稱。在 SQL Server管理控制臺中,右擊要操作的存儲過程名稱,從彈出的快捷菜單中選擇“重命名”選項,當存儲過程名稱變成可輸入狀態(tài)時,就可以直接修改該存儲過程的名稱。 在執(zhí)行諸如添加索引或更改索引列中的數據等操作而更改了數據庫時,應重新編譯訪問數據庫表的原始查詢計劃以對其重新優(yōu)化。 SQL Server 2022中,強制重新編譯存儲過程的方式有以下 3種。 ( 1) sp_repile系統(tǒng)存儲過程強制在下次執(zhí)行存儲過程時對其重新編譯。 ( 2)創(chuàng)建存儲過程時在其定義中指定WITH RECOMPILE選項,指明 SQL Server將不為該存儲過程緩存計劃,在每次執(zhí)行該存儲過程時對其重新編譯。 ( 3)可以通過指定 WITH RECOMPILE選項,強制在執(zhí)行存儲過程時對其重新編譯。 刪除存儲過程 使用管理控制器刪除存儲過程 圖 刪除存儲過程的對話框 使用 TransactSQL語言刪除存 儲過程 DROP PROCEDURE語句從當前數據庫中刪除一個或多個存儲過程或過程組。 語法: DROP PROCEDURE { procedure } [ ,...n ] 觸發(fā)器簡介 觸發(fā)器的概念 觸發(fā)器是一種特殊類型的存儲過程,它在插入、刪除或修改特定表中的數據時觸發(fā)執(zhí)行。 觸發(fā)器通??梢詮娭茍?zhí)行一定的業(yè)務規(guī)則,以保持數據完整性、檢查數據有效性、實現數據庫管理任務和一些附加的功能。 在 SQL Server中一張表可以有多個觸發(fā)器。 用戶可以根據 INSERT、 UPDATE或DELETE語句對觸發(fā)器進行設置,也可以對一張表上的特定操作設置多個觸發(fā)器。 觸發(fā)器可以包含復雜的 TSQL語句。 觸發(fā)器不能通過名稱被直接調用,更不允許設置參數。 觸發(fā)器的功能 觸發(fā)器可以使用 TSQL語句進行復雜的邏輯處理,它基于一個表創(chuàng)建,可以對多個表進行操作,因此常常用于復雜的業(yè)務規(guī)則。 一般可以使用觸發(fā)器完成如下操作: ( 1)級聯修改數據庫中相關表。 ( 2)執(zhí)行比核查約束更為復雜的約束操作。 ( 3)拒絕或回滾違反引用完整性的操作。 檢查對數據表的操作是否違反引用完整性,并選擇相應的操作。 ( 4)比較表修改前后數據之間的差別,并根據差別采取相應的操作。 觸發(fā)器的類型和觸發(fā)操作 在 SQL Server 2022中,觸發(fā)器分為DML觸發(fā)器和 DDL觸發(fā)器兩種。 ( 1) DML觸發(fā)器是在執(zhí)行數據操作語言事件時被調用的觸發(fā)器,其中數據操作語言事件包括: INSERT、 UPDATE和DELETE語句。 觸發(fā)器中可以包含復雜的 TransactSQL語句,觸發(fā)器整體被看作一個事務,可以回滾。 DML觸發(fā)器可以分為如下 5種類型。 ① UPDATE觸發(fā)器 ② INSERT觸發(fā)器 ③ DELETE觸發(fā)器 ④ INSTEAD OF觸發(fā)器 ⑤ AFTER觸發(fā)器 在表上可以定義多個 for或者 after觸發(fā)器,但是只能定義一個 instead of觸發(fā)器 ,但 instead of觸發(fā)器可以定義在視圖上,而 after和 for觸發(fā)器不能定義在視圖上 SQL Server 2022為每個 DML觸發(fā)器都創(chuàng)建了兩個專用臨時表: Inserted表和Deleted表。這兩個表的結構總是與被該觸發(fā)器作用的表的結構相同,觸發(fā)器執(zhí)行完成后,與該觸發(fā)器相關的這兩個表也會被刪除。 Inserted表存放由于執(zhí)行 INSERT或UPDATE語句而要向表中插入的所有行。 Deleted表存放由于執(zhí)行 DELETE或UPDATE語句而要從表中刪除的所有行。 虛擬表 Inserted 虛擬表 Deleted 新增時 存放新增的記錄 不存儲記錄 修改時 存放用來更新的新記錄 存放更新前的記錄 刪除時 不存儲記錄 存放被刪除的記錄 判斷觸發(fā)器的存在 if exists(select name from sysobjects where name=39。觸發(fā)器名 39。 and type=39。tr39。) drop trigger 觸發(fā)器名 刪除觸發(fā)器 if update(num) 判斷某列是否更改 rollback transaction 回滾事務,好像是每個觸發(fā)器相當一個事物來處理的 if @@rowcount=0 return 可以判斷是否刪除或者添加成功,然后執(zhí)行觸發(fā)器 set nocount on 作用是取消計數器,增加網絡流量 ( 2) DDL與 DML觸發(fā)器類似,與 DML不同的是,
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1