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

正文內(nèi)容

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

2025-01-04 00:14 本頁面
 

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