




已閱讀5頁,還剩67頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
04 03 2020 第1頁 第10章其他數(shù)據(jù)庫對象 學(xué)習(xí)目標(biāo)本章重點本章內(nèi)容 04 03 2020 第2頁 學(xué)習(xí)目標(biāo) 從業(yè)務(wù)數(shù)據(jù)角度來看 同一種業(yè)務(wù)數(shù)據(jù)有可能分散在不同的表中 如何從一個數(shù)據(jù)庫對象中查看這些分散存儲的數(shù)據(jù)呢 從安全角度來看 不同的操作人員或許只能看到表中不同部分的數(shù)據(jù) 從數(shù)據(jù)的應(yīng)用角度來看 一個報表中的數(shù)據(jù)往往來自于多個不同的表中 如何提高報表的設(shè)計效率呢 視圖是解決這些問題的一種有效手段 存儲過程是一個可重用的代碼模塊 可以高效率地完成指定的操作 觸發(fā)器是一種特殊類型的存儲過程 可以實現(xiàn)自動化的操作 用戶定義函數(shù)是由用戶根據(jù)自己應(yīng)用程序的需要而定義的可以完成特定操作的函數(shù) 本章將全面研究視圖 存儲過程 觸發(fā)器 用戶定義函數(shù)等數(shù)據(jù)庫對象的特點和使用方式 04 03 2020 第3頁 本章重點 視圖特點和類型管理視圖存儲過程特點和類型管理存儲過程觸發(fā)器特點和類型管理觸發(fā)器用戶定義函數(shù) 04 03 2020 第4頁 本章內(nèi)容 10 1視圖10 2存儲過程10 3觸發(fā)器10 4用戶定義函數(shù)10 5上機練習(xí)10 6習(xí)題 04 03 2020 第5頁 本章內(nèi)容 10 1視圖10 2存儲過程10 3觸發(fā)器10 4用戶定義函數(shù)10 5上機練習(xí)10 6習(xí)題 04 03 2020 第6頁 10 1視圖 本節(jié)全面研究與視圖有關(guān)的內(nèi)容 首先 分析視圖的作用和存在意義 其次 研究了視圖的類型和特點 接下來 探討創(chuàng)建視圖技術(shù) 然后 討論如何通過視圖修改表中數(shù)據(jù) 最后 瀏覽如何通過圖形化工具來創(chuàng)建和維護視圖 04 03 2020 第7頁 概述 數(shù)據(jù)是存儲在表中 對數(shù)據(jù)的操縱主要是通過表進行的 但是 僅僅通過表操縱數(shù)據(jù)會帶來一系列的性能 安全 效率等問題 下面 對這些問題進行分析 從業(yè)務(wù)數(shù)據(jù)角度來看 由于數(shù)據(jù)庫設(shè)計時考慮到數(shù)據(jù)異常等問題 同一種業(yè)務(wù)數(shù)據(jù)有可能被分散在不同的表中 但是對這種業(yè)務(wù)數(shù)據(jù)的使用經(jīng)常是同時使用的 前面講過的連接 子查詢 聯(lián)合等技術(shù)就是解決這種問題的一種手段 但是 對于多個表來說這些操作都是比較復(fù)雜的 能不能只通過一個數(shù)據(jù)庫對象就可以同時看到這些分散存儲的業(yè)務(wù)數(shù)據(jù)呢 如果能得話 將大大簡化查詢語句的復(fù)雜程度 從數(shù)據(jù)安全角度來看 由于工作性質(zhì)和需求不同 不同的操作人員只是需要查看表中的部分?jǐn)?shù)據(jù) 不能查看表中的所有數(shù)據(jù) 從數(shù)據(jù)的應(yīng)用角度來看 在設(shè)計報表時 需要明確地指定數(shù)據(jù)的來源途徑和方式 能不能采取有效手段 提高報表的設(shè)計效率呢 解決上述問題的一種有效手段就是視圖 04 03 2020 第8頁 視圖的內(nèi)容 基表的列的子集或行的子集 也就是說視圖可以是基表的其中一部分 兩個或多個基表的聯(lián)合 也就是說視圖是對多個基表進行聯(lián)合運算檢索的SELECT語句 兩個或多個基表的連接 也就是說視圖是通過對若干個基表的連接生成的 基表的統(tǒng)計匯總 也就是說視圖不僅是基表的投影 還可以是經(jīng)過對基表的各種復(fù)雜運算的結(jié)果 另外一個視圖的子集 也就是說視圖既可以基于表 也可以基于另外一個視圖 來自于函數(shù)或同義詞中的數(shù)據(jù) 視圖和基表的混合 在視圖的定義中 視圖和基表可以起到同樣的作用 04 03 2020 第9頁 視圖類型 在MicrosoftSQLServer2005系統(tǒng)中 可以把視圖分成3種類型 即標(biāo)準(zhǔn)視圖 索引視圖和分區(qū)視圖 一般情況下的視圖都是標(biāo)準(zhǔn)視圖 它是一個虛擬表并不占物理存儲空間 如果希望提高聚合多行數(shù)據(jù)的視圖性能 那么可以創(chuàng)建索引視圖 索引視圖是被物理化的視圖 它包含有經(jīng)過計算的物理數(shù)據(jù) 通過使用分區(qū)視圖 可以連接一臺或多臺服務(wù)器中成員表中的分區(qū)數(shù)據(jù) 使得這些數(shù)據(jù)看起來就像來自一個表中一樣 04 03 2020 第10頁 創(chuàng)建視圖 在MicrosoftSQLServer2005系統(tǒng)中 主要使用CREATEVIEW語句創(chuàng)建視圖 只能在當(dāng)前數(shù)據(jù)庫中創(chuàng)建視圖 當(dāng)創(chuàng)建視圖時 MicrosoftSQLServer首先驗證視圖定義中所引用的對象是否存在 視圖的名稱應(yīng)該符合命名規(guī)則 是否指定視圖的架構(gòu)則是可選的 視圖的外表和表的外表是一樣的 因此為了區(qū)別表和視圖 建議采用一種命名機制 使人容易分辨出視圖和表 例如可以在視圖名稱之前使用vw 作為前綴 04 03 2020 第11頁 例10 1 使用CREATEVIEW語句創(chuàng)建簡單的視圖 04 03 2020 第12頁 例10 2 使用sp helptext系統(tǒng)存儲過程查看視圖信息 04 03 2020 第13頁 例10 3 使用WITHENCRYPTION子句加密視圖定義文本信息 04 03 2020 第14頁 例10 4 使用DROPVIEW語句刪除視圖 04 03 2020 第15頁 通過視圖修改數(shù)據(jù) 無論在什么時候修改視圖的數(shù)據(jù) 實際上都是在修改視圖的基表中的數(shù)據(jù) 在滿足一定的限制條件下 可以通過視圖自由地插入 刪除和更新基表中的數(shù)據(jù) 在修改視圖時 要注意一些條件 04 03 2020 第16頁 例10 5 通過視圖修改數(shù)據(jù) 04 03 2020 第17頁 例10 5 04 03 2020 第18頁 使用SQLServerManagementStudio 除了使用CREATEVIEW語句之外 也可以使用SQLServerManagementStudio圖形化工具定義視圖 04 03 2020 第19頁 例10 6 使用圖形化工具定義視圖 04 03 2020 第20頁 本章內(nèi)容 10 1視圖10 2存儲過程10 3觸發(fā)器10 4用戶定義函數(shù)10 5上機練習(xí)10 6習(xí)題 04 03 2020 第21頁 10 2存儲過程 存儲過程可以提高應(yīng)用程序的設(shè)計效率和增強系統(tǒng)的安全性 本節(jié)全面介紹存儲過程的特點 類型 創(chuàng)建及執(zhí)行等內(nèi)容 04 03 2020 第22頁 存儲過程的特點 存儲過程是一個可重用的代碼模塊 可以高效率地完成指定的操作 在MicrosoftSQLServer2005系統(tǒng)中 既可以使用Transact SQL語言編寫存儲過程 也可以使用CLR方式編寫存儲過程 使用CLR編寫存儲過程是MicrosoftSQLServer2005系統(tǒng)與 NET框架緊密集成的一種表現(xiàn)形式 使用Transact SQL語言編寫存儲過程而不使用存儲在客戶端計算機上的Transact SQL語言有許多優(yōu)點 04 03 2020 第23頁 存儲過程的類型 在MicrosoftSQLServer2005系統(tǒng)中 提供了3種基本的存儲過程類型 即用戶定義的存儲過程 擴展存儲過程和系統(tǒng)存儲過程 用戶定義的存儲過程是主要的存儲過程類型 是封裝了可重用代碼的模塊或例程 用戶定義的存儲過程可以接受輸入?yún)?shù) 向客戶端返回表格或標(biāo)量結(jié)果和消息 調(diào)用數(shù)據(jù)定義語言 數(shù)據(jù)操縱語言語句 然后返回參數(shù) 在MicrosoftSQLServer2005系統(tǒng)中 用戶定義的存儲過程又可以分為Transact SQL類型的存儲過程和CLR類型的存儲過程 04 03 2020 第24頁 擴展存儲過程 擴展存儲過程是指使用某種變成語言如C語言創(chuàng)建的外部例程 是可以在MicrosoftSQLServer實例中動態(tài)加載和運行的DLL 但是 微軟公司宣布從MicrosoftSQLServer2005版本開始 將逐步刪除擴展存儲過程類型 這是因為使用CLR存儲過程可以可靠和安全地替代擴展存儲過程的功能 04 03 2020 第25頁 系統(tǒng)存儲過程 系統(tǒng)存儲過程是指用來完成MicrosoftSQLServer2005中許多管理活動的特殊存儲過程 從物理上來看 系統(tǒng)存儲過程存儲在Resource系統(tǒng)數(shù)據(jù)庫中 并且?guī)в衧p 前綴 從邏輯上來看 系統(tǒng)存儲過程出現(xiàn)在每個系統(tǒng)數(shù)據(jù)庫和用戶數(shù)據(jù)庫的sys架構(gòu)中 在MicrosoftSQLServer2005系統(tǒng)中 主要的系統(tǒng)存儲過程類型和功能如表10 1所示 04 03 2020 第26頁 創(chuàng)建存儲過程的規(guī)則 在設(shè)計和創(chuàng)建存儲過程中應(yīng)該滿足一定的約束和規(guī)則 只有滿足了這些約束和規(guī)則 才可以創(chuàng)建有效的存儲過程 雖然說在CREATEPROCEDURE語句中可以包括任意數(shù)量和類型的Transact SQL語句 但是某些特殊的語句是不能包含在存儲過程定義中的 04 03 2020 第27頁 創(chuàng)建存儲過程 在MicrosoftSQLServer2005系統(tǒng)中 可以使用CREATEPROCEDURE語句創(chuàng)建存儲過程 需要強調(diào)的是 必須具有CREATEPROCEDURE權(quán)限才能創(chuàng)建存儲過程 存儲過程是架構(gòu)作用域中的對象 只能在本地數(shù)據(jù)庫中創(chuàng)建存儲過程 在創(chuàng)建存儲過程時 應(yīng)該指定所有的輸入?yún)?shù) 執(zhí)行數(shù)據(jù)庫操作的編程語句 返回至調(diào)用過程或批處理表明成功或失敗的狀態(tài)值 捕捉和處理潛在錯誤的錯誤處理語句 04 03 2020 第28頁 CREATEPROCEDURE語句 CREATEPROCEDUREprocedure nameparameter namedata type WITHprocedure optionASsql statement 04 03 2020 第29頁 例10 7 使用CREATEPROCEDURE語句創(chuàng)建存儲過程 04 03 2020 第30頁 例10 8 使用OUTPUT關(guān)鍵字創(chuàng)建存儲過程 04 03 2020 第31頁 執(zhí)行存儲過程 在MicrosoftSQLServer2005系統(tǒng)中 可以使用EXECUTE語句執(zhí)行存儲過程 EXECUTE語句也可以簡寫為EXEC 如果將要執(zhí)行的存儲過程需要參數(shù) 那么應(yīng)該在存儲過程名稱后面帶上參數(shù)值 04 03 2020 第32頁 例10 9 使用EXEC語句執(zhí)行存儲過程 04 03 2020 第33頁 例10 10 執(zhí)行帶有參數(shù)的存儲過程 04 03 2020 第34頁 例10 11 在執(zhí)行EXEC語句時引用參數(shù)和使用OUTPUT關(guān)鍵字 04 03 2020 第35頁 修改和刪除存儲過程 在MicrosoftSQLServer2005系統(tǒng)中 可以使用ALTERPROCEDURE語句修改已經(jīng)存在的存儲過程 修改存儲過程不同于刪除和重建存儲過程 其目的是保持存儲過程的權(quán)限不發(fā)生變化 例如 如果修改HumanResources GetEmployeeInfo存儲過程 那么與該存儲過程對象相關(guān)的權(quán)限將不會發(fā)生任何變化 但是 如果刪除HumanResources GetEmployeeInfo存儲過程并且重新創(chuàng)建同名的存儲過程 那么該存儲過程對象相關(guān)的權(quán)限都需要重新定義 如果數(shù)據(jù)庫中某個存儲過程不再需要了 可以使用DROPPROCEDURE語句刪除該存儲過程 這種刪除是永久性的 不能恢復(fù) 04 03 2020 第36頁 存儲過程的執(zhí)行過程 存儲過程創(chuàng)建之后 在第一次執(zhí)行時需要經(jīng)過語法分析階段 解析階段 編譯階段和執(zhí)行階段 語法分析階段是指創(chuàng)建存儲過程時 系統(tǒng)檢查其創(chuàng)建語句的語法正確性的過程 在存儲過程的創(chuàng)建過程中如果碰到語法錯誤 那么該存儲過程創(chuàng)建失敗 如果語法檢查通過之后 系統(tǒng)將該存儲過程的名稱存儲在當(dāng)前數(shù)據(jù)庫的sys sql modules目錄視圖中 解析階段是指某個存儲過程首次執(zhí)行時 查詢處理器從sys sql modules目錄視圖中讀取該存儲過程的文本并且檢查該過程引用的對象名稱是否存在的過程 編譯階段是指分析存儲過程和生成存儲過程執(zhí)行計劃的過程 執(zhí)行階段是指執(zhí)行駐留在過程高速緩沖存儲區(qū)中的存儲過程的執(zhí)行計劃的過程 04 03 2020 第37頁 查看存儲過程的信息 在MicrosoftSQLServer2005系統(tǒng)中 可以使用系統(tǒng)存儲過程和目錄視圖查看有關(guān)存儲過程的信息 如果希望查看存儲過程的定義信息 那么可以使用sys sql modules目錄視圖 OBJECT DEFINITION元數(shù)據(jù)函數(shù) sp helptext系統(tǒng)存儲過程等 04 03 2020 第38頁 例10 12 查看存儲過程信息 04 03 2020 第39頁 本章內(nèi)容 10 1視圖10 2存儲過程10 3觸發(fā)器10 4用戶定義函數(shù)10 5上機練習(xí)10 6習(xí)題 04 03 2020 第40頁 10 3觸發(fā)器 MicrosoftSQLServer2005系統(tǒng)提供了兩種強制業(yè)務(wù)邏輯和數(shù)據(jù)完整性的機制 即約束技術(shù)和觸發(fā)器技術(shù) 前面已經(jīng)講過了約束技術(shù) 本節(jié)講述觸發(fā)器技術(shù) 04 03 2020 第41頁 觸發(fā)器類型 按照觸發(fā)事件的不同 可以把MicrosoftSQLServer2005系統(tǒng)提供的觸發(fā)器分成兩大類型 即DML觸發(fā)器和DDL觸發(fā)器 需要補充的是 DDL觸發(fā)器是MicrosoftSQLServer2005系統(tǒng)新增的功能 以前的版本只有DML觸發(fā)器 當(dāng)數(shù)據(jù)庫中發(fā)生數(shù)據(jù)操縱語言 datamanipulationlanguage DML 事件時將調(diào)用DML觸發(fā)器 DML事件包括在指定表或視圖中修改數(shù)據(jù)的INSERT語句 UPDATE語句或DELETE語句 在DML觸發(fā)器中 可以執(zhí)行查詢其他表的操作 也可以包含更加復(fù)雜的Transact SQL語句 DML觸發(fā)器將觸發(fā)器本身和觸發(fā)事件的語句作為可以在觸發(fā)器內(nèi)回滾的單個事務(wù)對待 也就是說 當(dāng)在執(zhí)行觸發(fā)器操作過程中 如果檢測到錯誤發(fā)生 則整個觸發(fā)事件語句和觸發(fā)器操作的事務(wù)自動回滾 DDL觸發(fā)器與DML觸發(fā)器相同的是 都需要觸發(fā)事件進行觸發(fā) 但是 DDL觸發(fā)器的觸發(fā)事件是數(shù)據(jù)定義語言 datadefinitionlanguage DDL 語句 04 03 2020 第42頁 DML觸發(fā)器的基本類型 按照觸發(fā)器事件類型的不同 可以把MicrosoftSQLServer2005系統(tǒng)DML觸發(fā)器分成3種類型 即INSERT類型 UPDATE類型和DELETE類型 這也是DML觸發(fā)器的基本類型 04 03 2020 第43頁 創(chuàng)建DML觸發(fā)器 DML觸發(fā)器是一種特殊類型的存儲過程 所以DML觸發(fā)器的創(chuàng)建和存儲過程的創(chuàng)建方式有很多相似的地方 可以使用CREATETRIGGER語句創(chuàng)建DML觸發(fā)器 在CREATETRIGGER語句中 指定了定義觸發(fā)器的基表或視圖 觸發(fā)事件的類型和觸發(fā)的時間 觸發(fā)器的所有指令等內(nèi)容 使用CREATETRIGGER語句創(chuàng)建DML觸發(fā)器 04 03 2020 第44頁 CREATETRIGGER語句 CREATETRIGGERtrigger nameONtable name or view nameWITHENCRYPTION FOR AFTER INSTEADOF DELETE INSERT UPDATE ASsql statement 04 03 2020 第45頁 例10 13 查看觸發(fā)器信息 04 03 2020 第46頁 DML觸發(fā)器的工作原理 前面介紹了DML觸發(fā)器的基本概念 類型 特點 創(chuàng)建 修改 刪除等內(nèi)容 現(xiàn)在我們來看看觸發(fā)器是如何工作的 通過了解觸發(fā)器的工作原理 就可以更好地使用觸發(fā)器 寫出效率更高的觸發(fā)器 下面主要介紹INSERT DELETE和UPDATE類型觸發(fā)器的工作原理 04 03 2020 第47頁 INSERT觸發(fā)器的工作原理 當(dāng)向表中插入數(shù)據(jù)時 INSERT觸發(fā)器觸發(fā)執(zhí)行 當(dāng)INSERT觸發(fā)器觸發(fā)時 新的記錄增加到觸發(fā)器表中和inserted表中 該inserted表是一個邏輯表 保存了所插入記錄的拷貝 允許用戶參考INSERT語句中數(shù)據(jù) 觸發(fā)器可以檢查inserted表 來確定該觸發(fā)器的操作是否應(yīng)該執(zhí)行和如何執(zhí)行 在inserted表中的那些記錄 總是觸發(fā)器表中一行或多行記錄的冗余 04 03 2020 第48頁 DELETE觸發(fā)器的工作原理 當(dāng)觸發(fā)一個DELETE觸發(fā)器時 被刪除的記錄放在一個特殊的deleted表中 deleted表是一個邏輯表 用來保存已經(jīng)從表中刪除的記錄 該deleted表允許參考原來的DELETE語句刪除的已經(jīng)記錄在日志中的數(shù)據(jù) 當(dāng)使用DELETE語句時 應(yīng)該考慮下列一些因素 當(dāng)記錄放在deleted表中的時候 該記錄就不會存在數(shù)據(jù)庫的表中了 因此 在數(shù)據(jù)庫表和deleted表之間沒有共同的記錄 邏輯表deleted總是存放在內(nèi)存中 以提供性能 在DELETE觸發(fā)器中 不能包括TRUNCATETABLE語句 這是因為該語句是不記日志的操作 04 03 2020 第49頁 UPDATE觸發(fā)器的工作原理 修改一條記錄就等于插入一條新記錄和刪除一條舊記錄 同樣 UPDATE語句也可以看成是由刪除一條記錄的DELETE語句和增加一條記錄的INSERT語句組成 當(dāng)在某一個有UPDATE觸發(fā)器表的上面修改一條記錄時 表中原來的記錄移動到deleted表中 修改過的記錄插入到了inserted表中 觸發(fā)器可以檢查deleted表和inserted表及被修改的表 以便確定是否修改了多個行和應(yīng)該如何執(zhí)行觸發(fā)器的操作 04 03 2020 第50頁 一個具體的示例 為了更加全面地掌握開發(fā)觸發(fā)器的步驟和技術(shù) 本節(jié)通過一個具體的示例 全面講述使用Transact SQL語言開發(fā)和創(chuàng)建觸發(fā)器的技術(shù) 一般地 開發(fā)觸發(fā)器的過程包括用戶需求分析 確定觸發(fā)器的邏輯結(jié)構(gòu) 編寫觸發(fā)器代碼和測試觸發(fā)器 04 03 2020 第51頁 例10 14 設(shè)計和實現(xiàn)DML觸發(fā)器 04 03 2020 第52頁 創(chuàng)建t accountData insert觸發(fā)器 04 03 2020 第53頁 創(chuàng)建t accountData delete觸發(fā) 04 03 2020 第54頁 一組插入數(shù)據(jù)的操作 04 03 2020 第55頁 審計到的插入數(shù)據(jù)的操作 04 03 2020 第56頁 一組刪除數(shù)據(jù)的操作 04 03 2020 第57頁 審計到的刪除數(shù)據(jù)的操作 04 03 2020 第58頁 DDL觸發(fā)器 DDL觸發(fā)器與DML觸發(fā)器有許多類似的地方 如可以自動觸發(fā)完成規(guī)定的操作 都可以使用CREATETRIGGER語句創(chuàng)建等 但是也有一些不同的地方 例如 DDL觸發(fā)器的觸發(fā)事件主要是CREATE ALTER DROP以及GRANT DENY及REVOKE等語句 并且觸發(fā)的時間條件只有AFTER 沒有INSTEADOF 04 03 2020 第59頁 例10 15 使用DDL觸發(fā)器 04 03 2020 第60頁 本章內(nèi)容 10 1視圖10 2存儲過程10 3觸發(fā)器10 4用戶定義函數(shù)10 5上機練習(xí)10 6習(xí)題 04 03 2020 第61頁 10 4用戶定義函數(shù) 在MicrosoftSQLServer2005系統(tǒng)中 用戶定義函數(shù)是接受參數(shù) 執(zhí)行操作并且將運算結(jié)果以值的形式返回的例程 這種返回值既可以是單個標(biāo)量值 也可以是一個結(jié)果集 在MicrosoftSQLServer2005系統(tǒng)中 用戶定義函數(shù)既可以使用Transact SQL語言編寫 也可以使用任何 NET編程語言來編寫 04 03 2020 第62頁 特點 在MicrosoftSQLServer2005系統(tǒng)中 所有的用戶定義函數(shù)都具有相同的由兩部分組成的結(jié)構(gòu) 標(biāo)題和正文 標(biāo)題可以定義這些內(nèi)容 具有可選架構(gòu) 所有者名稱的函數(shù)名稱 輸入?yún)?shù)名稱和數(shù)據(jù)類型 可以用于輸入?yún)?shù)的選項 返回參數(shù)數(shù)據(jù)類型和可選名稱 可以用于返回參數(shù)的選項等 正文定義了函數(shù)將要執(zhí)行的操作 這些操作既可以是一個或多個Transact SQL語句 也可以是 NET程序集的引用 在MicrosoftSQLServer2005系統(tǒng)中 用戶定義函數(shù)又可以分為兩大類 即用戶定義標(biāo)量函數(shù)和用戶定義表值函數(shù) 用戶定義標(biāo)量函數(shù)返回在RETURNS子句中定義的類型的單個數(shù)據(jù)值 對于多語句標(biāo)量函數(shù) 定義在BEGINEND塊中的函數(shù)體包含一系列返回單個值的Transact SQL語句 返回類型可以是除text ntext image cursor timestamp以外的任何數(shù)據(jù)類型 用戶定義表值函數(shù)返回table數(shù)據(jù)類型 實際上 在表值函數(shù)中 表是單個SELECT語句的結(jié)果集 04 03 2020 第63頁 創(chuàng)建時的考慮 在MicrosoftSQLServer2005系統(tǒng)中 可以分別使用CREATEFUNCTION ALTERFUNCTION DROPFUNCTION語句來實現(xiàn)用戶定義函數(shù)的創(chuàng)建 修改和刪除 在創(chuàng)建用戶定義函數(shù)時 每個完全限定用戶函數(shù)的名稱 schema name function name 必須唯一 函數(shù)的BEGINEND塊中的語句不能有任何副作用 函數(shù)副作用是指對具有函數(shù)外作用域 例如修改數(shù)據(jù)庫表 的資源狀態(tài)的任何永久性更改 函數(shù)中的語句唯一能做的更改是對函數(shù)上的局部對象 如局部游標(biāo)或局部變量 的更改 不能在函數(shù)中執(zhí)行的操作包括對數(shù)據(jù)庫表的修改 對不在函數(shù)上的局部游標(biāo)進行操作 發(fā)送電子郵件 嘗試修改目錄 以及生成返回至用戶的結(jié)果集 04 03 2020 第64頁 使用CREATEFUNCTION語句 在MicrosoftSQLServer2005系統(tǒng)中 使用CREATEFUNCTION語句可以創(chuàng)建標(biāo)量函數(shù) 內(nèi)聯(lián)表值函數(shù) 多語句表值函數(shù) 需要說明的是 如果RETURNS子句指定了一種標(biāo)量數(shù)據(jù)類型 則該函數(shù)為標(biāo)量值 如果R
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度商業(yè)綜合體水電費結(jié)算與管理合同
- 2025年度股權(quán)收益權(quán)轉(zhuǎn)讓與回購合同模板
- 二零二五年度新材料勞動合同法條知識產(chǎn)權(quán)保護合同
- 二零二五年度金融產(chǎn)品銷售業(yè)務(wù)員傭金分配協(xié)議
- 二零二五年度魚塘使用權(quán)及養(yǎng)殖廢棄物處理轉(zhuǎn)讓合同
- 四川省通信產(chǎn)業(yè)服務(wù)有限公司成都市分公司招聘筆試參考題庫附帶答案詳解
- 2025重慶九洲隆瓴科技有限公司招聘軟件技術(shù)員等崗位30人筆試參考題庫附帶答案詳解
- 校園安全知識培訓(xùn)課件
- 2025浙江溫州市白鹿人才科技發(fā)展有限公司招聘項目部工作人員2人筆試參考題庫附帶答案詳解
- 2025江西吉安市創(chuàng)新投資集團有限公司面向社會招聘臨聘人員1人筆試參考題庫附帶答案詳解
- 2025年黑龍江民族職業(yè)學(xué)院單招職業(yè)技能測試題庫完整版
- 2024年南京機電職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫標(biāo)準(zhǔn)卷
- 事業(yè)單位考試職業(yè)能力傾向測驗(綜合管理類A類)試題與參考答案(2024年)
- 小紅書食用農(nóng)產(chǎn)品承諾書示例
- IPCJEDEC J-STD-020 塑料集成電路(IC)SMD的潮濕回流敏感性分類 該
- a04-hci深信服超融合配置指南_v1
- 急診與災(zāi)難醫(yī)學(xué)第二版配套課件 05 心悸與心律失常
- 流體力學(xué)第二版蔡增基課件
- 天然氣管道保護蓋板涵施工方案
- 燒結(jié)普通磚抗壓強度試驗
- 云南省普通初中學(xué)生成長記錄.doc
評論
0/150
提交評論