版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第9章存儲過程12/17/20221SQLServer2005第9章存儲過程12/13/20221SQLServer存儲過程概述
在大型數(shù)據(jù)庫系統(tǒng)中,存儲過程具有很重要的作用。存儲過程是SQL語句和流程控制語句的集合。存儲過程在運算時生成執(zhí)行方式,所以,以后對其再運行時其執(zhí)行速度很快。SQLServer2005不僅提供了用戶自定義存儲過程的功能,而且也提供了許多可作為工具使用的系統(tǒng)存儲過程。。12/17/20222SQLServer2005存儲過程概述在大型數(shù)據(jù)庫系統(tǒng)中,存儲過程具有很重要的作用。存儲過程的基本概念
存儲過程(StoredProcedure)是一組為了完成特定功能的SQL語句集,經(jīng)編譯后存儲在數(shù)據(jù)庫中,用戶通過指定存儲過程的名字并給出參數(shù)(如果該存儲過程帶有參數(shù))來執(zhí)行它。12/17/20223SQLServer2005存儲過程的基本概念存儲過程(StoredProcedur數(shù)據(jù)庫技術及應用第9章-存儲過程課件數(shù)據(jù)庫技術及應用第9章-存儲過程課件存儲過程分類Transact-SQLTransact-SQL存儲過程是指保存的Transact-SQL語句集合,可以接受和返回用戶提供的參數(shù)。例如,存儲過程中可能包含根據(jù)客戶端應用程序提供的信息在一個或多個表中插入新行所需的語句。存儲過程也可能從數(shù)據(jù)庫向客戶端應用程序返回數(shù)據(jù)。例如,電子商務Web應用程序可能使用存儲過程根據(jù)聯(lián)機用戶指定的搜索條件返回有關特定產(chǎn)品的信息。CLRCLR存儲過程是指對Microsoft.NETFramework公共語言運行時(CLR)方法的引用,可以接受和返回用戶提供的參數(shù)。它們在.NETFramework程序集中是作為類的公共靜態(tài)方法實現(xiàn)的。12/17/20226SQLServer2005存儲過程分類Transact-SQL12/13/20226S存儲過程分類擴展存儲過程擴展存儲過程允許您使用編程語言(例如C)創(chuàng)建自己的外部例程。擴展存儲過程是指MicrosoftSQLServer的實例可以動態(tài)加載和運行的DLL。擴展存儲過程直接在SQLServer的實例的地址空間中運行,可以使用SQLServer擴展存儲過程API完成編程。12/17/20227SQLServer2005存儲過程分類擴展存儲過程12/13/20227SQLSer存儲過程的優(yōu)點
與其他應用程序共享應用程序邏輯,因而確保了數(shù)據(jù)訪問和修改的一致性。存儲過程可以封裝業(yè)務功能,在存儲過程中可以在同一位置改變封裝的業(yè)務規(guī)則和策略,所有的客戶端可以使用相同的存儲過程來確保數(shù)據(jù)訪問和修改的一致性防止把數(shù)據(jù)庫中表的細節(jié)暴露給用戶。如果一組存儲過程支持用戶需要執(zhí)行的所有業(yè)務功能,用戶就不必直接訪問表提供了安全機制。即使是沒有訪問存儲過程引用的表或視圖的權限的用戶,也可以被授權執(zhí)行該存儲過程12/17/20228SQLServer2005存儲過程的優(yōu)點與其他應用程序共享應用程序邏輯,因而確保了數(shù)存儲過程的優(yōu)點
改進性能。如果某一操作包含大量的Transaction-SQL代碼或分別被多次執(zhí)行,那么存儲過程要比批處理的執(zhí)行速度快很多。因為存儲過程是預編譯的,在首次運行一個存儲過程時,查詢優(yōu)化器對其進行分析、優(yōu)化,并給出最終被存在系統(tǒng)表中的執(zhí)行計劃。而批處理的Transaction-SQL語句在每次運行時都要進行編譯和優(yōu)化,因此速度相對要慢一些。減少網(wǎng)絡流量。用戶可以通過發(fā)送一個單獨的語句實現(xiàn)一個復雜的操作,而不需要在網(wǎng)絡上發(fā)送幾百個Transact-SQL代碼,這樣減少了在服務器和客戶機之間傳遞的請求的數(shù)量12/17/20229SQLServer2005存儲過程的優(yōu)點改進性能。如果某一操作包含大量的Transa創(chuàng)建存儲過程在圖形界面下創(chuàng)建存儲過程打開MicrosoftSQLServerManagerStudio,并連接數(shù)據(jù)庫。在對象資源管理器中,依次展開數(shù)據(jù)庫|Northwind|可編程性,選中存儲過程點擊鼠標右鍵,選擇新建存儲過程系統(tǒng)將在查詢編輯器中打開存儲過程模版。在模版中輸入存儲過程的名稱,設置相應的參數(shù)。也可以通過菜單“查詢”|“指定模版參數(shù)的值”進行設置12/17/202210SQLServer2005創(chuàng)建存儲過程在圖形界面下創(chuàng)建存儲過程12/13/20221012/17/202211SQLServer200512/13/202211SQLServer200512/17/202212SQLServer200512/13/202212SQLServer2005指定模版參數(shù)的值窗口的前三行分別是創(chuàng)建人、創(chuàng)建時間、描述,是對存儲過程進行注釋。從第四行開始,分別指定存儲過程名稱、參數(shù)名稱、數(shù)據(jù)類型、參數(shù)的缺省值。12/17/202213SQLServer2005指定模版參數(shù)的值窗口的前三行分別是創(chuàng)建人、創(chuàng)建時間、描述,是刪除掉參數(shù)@p2,并編寫相應的SQL語句。SQL語句如下:BEGIN --SETNOCOUNTONaddedtopreventextraresultsetsfrom --interferingwithSELECTstatements. SETNOCOUNTON;--Insertstatementsforprocedurehere SELECT[OrderDetails].*FROM[OrderDetails]WHERE(OrderID=@orderID)END點擊工具欄上的執(zhí)行按鈕來創(chuàng)建存儲過程,如沒有錯誤,消息框中則顯示“命令已成功完成”。12/17/202214SQLServer2005刪除掉參數(shù)@p2,并編寫相應的SQL語句。SQL語句如下:1用SQL語句創(chuàng)建存儲過程
使用CREATEPROCEDURE語句可以創(chuàng)建存儲過程。其語法如下:CREATEPROC[EDURE]procedure_name[;number][{@parameterdata_type}[VARYING][=default][OUTPUT]][,...n][WITH{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}][FORREPLICATION]ASsql_statement[...n]12/17/202215SQLServer2005用SQL語句創(chuàng)建存儲過程使用CREATEPROCEDUR只返回單一記錄集的存儲過程。查詢表Categories的內容的存儲過程USENorthwind;GOCREATEPROCGETCATEGORIESASSELECT*FROMCategories12/17/202216SQLServer2005只返回單一記錄集的存儲過程。12/13/202216SQL使用帶有通配符參數(shù)的簡單過程以下存儲過程只從視圖中返回指定的一些雇員(提供名和姓)及其職務和部門名稱。此存儲過程模式與所傳遞的參數(shù)相匹配;或者,如果未提供參數(shù),則使用預設的默認值(以字母D打頭的姓)。USENorthwind;GOCREATEPROCEDUREusp_GetEmployees@lastnamevarchar(40)='D%',@firstnamevarchar(20)='%'ASSELECTLastName,FirstName,Title,Address,CityFROMdbo.EmployeesWHEREFirstNameLIKE@firstnameANDLastNameLIKE@lastname;GO12/17/202217SQLServer2005使用帶有通配符參數(shù)的簡單過程12/13/202217SQL在存儲過程中使用輸入?yún)?shù)創(chuàng)建名為SalesbyYear的存儲過程,返回在兩個指定日期之間的所有銷售額。CREATEprocedureSalesbyYear @Beginning_DateDateTime,@Ending_DateDateTimeASIF@Beginning_DateISNULLOR@Ending_DateISNULLBEGINRAISERROR('NULLvaluesarenotallowed',14,1)RETURNENDSELECTOrders.ShippedDate,Orders.OrderID,"OrderSubtotals".Subtotal,DATENAME(yy,ShippedDate)ASYearFROMOrdersINNERJOIN"OrderSubtotals"ONOrders.OrderID="OrderSubtotals".OrderIDWHEREOrders.ShippedDateBetween@Beginning_DateAnd@Ending_Date;GO12/17/202218SQLServer2005在存儲過程中使用輸入?yún)?shù)12/13/202218SQLSe執(zhí)行存儲過程建立一個存儲過程以后,可以使用EXECUTE語句來執(zhí)行這個存儲過程。EXECUTE語句的語法如下:[{EXEC|EXECUTE}]
{
[@return_status=]
{procedure_name[;number]|@procedure_name_var}
[[@parameter=]{value|@variable[OUTPUT]|[DEFAULT]}]
[,...n]
[WITHRECOMPILE]
}12/17/202219SQLServer2005執(zhí)行存儲過程建立一個存儲過程以后,可以使用EXECUTE語句執(zhí)行存儲過程使用EXECUTE語句時應注意以下幾點:EXECUTE語句可以用于執(zhí)行系統(tǒng)存儲過程用戶定義存儲過程或擴展存儲過程,同時支持Transact-SQL批處理內的字符串的執(zhí)行。如果EXECUTE語句是批處理今的第一條語句,那么省略EXECUTE關鍵字也可以執(zhí)行該存儲過程向存儲過程傳遞參數(shù)時,如果使用“@參數(shù)=值”的形式,則可以按任何順序來提供參數(shù),還可以省略那些已經(jīng)提供默認值的參數(shù)。一旦以“@參數(shù)=值”形式提供了一個參數(shù),就必須按這種形式提供后面所有的參數(shù)。如果不是以“@參數(shù)=值”形式來提供參數(shù),則必須按照CREATEPROCEDURE語句中結出的順序提供參數(shù)。12/17/202220SQLServer2005執(zhí)行存儲過程使用EXECUTE語句時應注意以下幾點:12/1執(zhí)行存儲過程雖然可以省略已提供默認值的參數(shù),但只能截斷參數(shù)列表。例如,如果—個存儲過程有五個參數(shù),可以省略第四個和第五個參數(shù),但不能跳過第四個參數(shù)而仍然包含第五個參數(shù),除非以“@參數(shù)=值”形式提供參數(shù)。如果在建立存儲過程時定義了參數(shù)的默認值,那么下列情況下將使用默認值:執(zhí)行存儲過程時未指定該參數(shù)的值;將Default關鍵字指定為該參數(shù)的值。如果在存儲過程中使用了帶Like關鍵字的參數(shù)名稱,則提供的默認值必須是常量,并且可以包含%、_、[]、[^]通配符。12/17/202221SQLServer2005執(zhí)行存儲過程雖然可以省略已提供默認值的參數(shù),但只能截斷參數(shù)列通過參數(shù)名傳遞值執(zhí)行創(chuàng)建的存儲過程SalesbyYear。USENorthwind;GOEXECUTEdbo.SalesbyYear@Beginning_Date='1998-5-1',@Ending_Date='1998-5-6';GO通過定位傳遞值EXECUTEdbo.SalesbyYear'1998-5-1','1998-5-6';12/17/202222SQLServer2005通過參數(shù)名傳遞值12/13/202222SQLServer執(zhí)行帶有通配符參數(shù)的存儲過程執(zhí)行創(chuàng)建的存儲過程usp_GetEmployees。不指定參數(shù),則使用默認參數(shù)值執(zhí)行。USENorthwind;GOEXECUTEusp_GetEmployeesGO結果如下:LastNameFirstNameTitleAddressCity--------------------------------------------------------------DavolioNancySalesRepresentative507-20thAve.E.Apt.2ASeattleDodsworthAnneSalesRepresentativeHoundstoothRd.London12/17/202223SQLServer2005執(zhí)行帶有通配符參數(shù)的存儲過程12/13/202223SQL執(zhí)行簡單存儲過程執(zhí)行存儲過程GETCATEGORIES。USENorthwind;GOEXECUTEdbo.GETCATEGORIES;GO12/17/202224SQLServer2005執(zhí)行簡單存儲過程12/13/202224SQLServer修改存儲過程
使用ALTERPROCEDURE語句修改存儲過程,其語法如下:ALTERPROC[EDURE]procedure_name[;number][{@parameterdata_type}[VARYING][=default][OUTPUT]][,...n][WITH{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}][FORREPLICATION]ASsql_statement[...n]12/17/202225SQLServer2005修改存儲過程使用ALTERPROCEDURE語句修改存重命名存儲過程
在MicrosoftSQLServerManagerStudio的對象資源管理器中重命名存儲過程很簡單,選擇要重命名的存儲過程,單擊右鍵,在彈出的菜單中選擇“重命名”命令,就可以修改了。使用系統(tǒng)存儲過程sp_rename也可以重命名存儲過程。其語法如下:sp_rename'object_name','new_name'[,'object_type']12/17/202226SQLServer2005重命名存儲過程在MicrosoftSQLServer重命名存儲過程將Northwind數(shù)據(jù)庫中存儲過程SalesByCategory重命名為NewNameUSENorthwind;GOEXECsp_rename'dbo.SalesByCategory','NewName','PROCEDURE';GO建議:不要使用此語句來重命名存儲過程,而是刪除該對象,然后使用新名稱重新創(chuàng)建該對象。
12/17/202227SQLServer2005重命名存儲過程將Northwind數(shù)據(jù)庫中存儲過程Sales刪除存儲過程
使用DROPPROCEDURE語句來刪除用戶定義的存儲過程。其語法如下:DROPPROCEDURE{procedure}[,…n]將Northwind數(shù)據(jù)庫中存儲過程SalesByCategory刪除USENorthwind;GODROPPROCEDUREdbo.SalesByCategoryGO12/17/202228SQLServer2005刪除存儲過程使用DROPPROCEDURE語句來刪除用戶小結本章主要介紹了:存儲過程的基本概念如何創(chuàng)建、修改、刪除和執(zhí)行存儲過程,以及重命名存儲過程。掌握使用圖形界面和代碼創(chuàng)建、修改和刪除存儲過程的方法。12/17/202229SQLServer2005小結本章主要介紹了:12/13/202229SQLServ第9章存儲過程12/17/202230SQLServer2005第9章存儲過程12/13/20221SQLServer存儲過程概述
在大型數(shù)據(jù)庫系統(tǒng)中,存儲過程具有很重要的作用。存儲過程是SQL語句和流程控制語句的集合。存儲過程在運算時生成執(zhí)行方式,所以,以后對其再運行時其執(zhí)行速度很快。SQLServer2005不僅提供了用戶自定義存儲過程的功能,而且也提供了許多可作為工具使用的系統(tǒng)存儲過程。。12/17/202231SQLServer2005存儲過程概述在大型數(shù)據(jù)庫系統(tǒng)中,存儲過程具有很重要的作用。存儲過程的基本概念
存儲過程(StoredProcedure)是一組為了完成特定功能的SQL語句集,經(jīng)編譯后存儲在數(shù)據(jù)庫中,用戶通過指定存儲過程的名字并給出參數(shù)(如果該存儲過程帶有參數(shù))來執(zhí)行它。12/17/202232SQLServer2005存儲過程的基本概念存儲過程(StoredProcedur數(shù)據(jù)庫技術及應用第9章-存儲過程課件數(shù)據(jù)庫技術及應用第9章-存儲過程課件存儲過程分類Transact-SQLTransact-SQL存儲過程是指保存的Transact-SQL語句集合,可以接受和返回用戶提供的參數(shù)。例如,存儲過程中可能包含根據(jù)客戶端應用程序提供的信息在一個或多個表中插入新行所需的語句。存儲過程也可能從數(shù)據(jù)庫向客戶端應用程序返回數(shù)據(jù)。例如,電子商務Web應用程序可能使用存儲過程根據(jù)聯(lián)機用戶指定的搜索條件返回有關特定產(chǎn)品的信息。CLRCLR存儲過程是指對Microsoft.NETFramework公共語言運行時(CLR)方法的引用,可以接受和返回用戶提供的參數(shù)。它們在.NETFramework程序集中是作為類的公共靜態(tài)方法實現(xiàn)的。12/17/202235SQLServer2005存儲過程分類Transact-SQL12/13/20226S存儲過程分類擴展存儲過程擴展存儲過程允許您使用編程語言(例如C)創(chuàng)建自己的外部例程。擴展存儲過程是指MicrosoftSQLServer的實例可以動態(tài)加載和運行的DLL。擴展存儲過程直接在SQLServer的實例的地址空間中運行,可以使用SQLServer擴展存儲過程API完成編程。12/17/202236SQLServer2005存儲過程分類擴展存儲過程12/13/20227SQLSer存儲過程的優(yōu)點
與其他應用程序共享應用程序邏輯,因而確保了數(shù)據(jù)訪問和修改的一致性。存儲過程可以封裝業(yè)務功能,在存儲過程中可以在同一位置改變封裝的業(yè)務規(guī)則和策略,所有的客戶端可以使用相同的存儲過程來確保數(shù)據(jù)訪問和修改的一致性防止把數(shù)據(jù)庫中表的細節(jié)暴露給用戶。如果一組存儲過程支持用戶需要執(zhí)行的所有業(yè)務功能,用戶就不必直接訪問表提供了安全機制。即使是沒有訪問存儲過程引用的表或視圖的權限的用戶,也可以被授權執(zhí)行該存儲過程12/17/202237SQLServer2005存儲過程的優(yōu)點與其他應用程序共享應用程序邏輯,因而確保了數(shù)存儲過程的優(yōu)點
改進性能。如果某一操作包含大量的Transaction-SQL代碼或分別被多次執(zhí)行,那么存儲過程要比批處理的執(zhí)行速度快很多。因為存儲過程是預編譯的,在首次運行一個存儲過程時,查詢優(yōu)化器對其進行分析、優(yōu)化,并給出最終被存在系統(tǒng)表中的執(zhí)行計劃。而批處理的Transaction-SQL語句在每次運行時都要進行編譯和優(yōu)化,因此速度相對要慢一些。減少網(wǎng)絡流量。用戶可以通過發(fā)送一個單獨的語句實現(xiàn)一個復雜的操作,而不需要在網(wǎng)絡上發(fā)送幾百個Transact-SQL代碼,這樣減少了在服務器和客戶機之間傳遞的請求的數(shù)量12/17/202238SQLServer2005存儲過程的優(yōu)點改進性能。如果某一操作包含大量的Transa創(chuàng)建存儲過程在圖形界面下創(chuàng)建存儲過程打開MicrosoftSQLServerManagerStudio,并連接數(shù)據(jù)庫。在對象資源管理器中,依次展開數(shù)據(jù)庫|Northwind|可編程性,選中存儲過程點擊鼠標右鍵,選擇新建存儲過程系統(tǒng)將在查詢編輯器中打開存儲過程模版。在模版中輸入存儲過程的名稱,設置相應的參數(shù)。也可以通過菜單“查詢”|“指定模版參數(shù)的值”進行設置12/17/202239SQLServer2005創(chuàng)建存儲過程在圖形界面下創(chuàng)建存儲過程12/13/20221012/17/202240SQLServer200512/13/202211SQLServer200512/17/202241SQLServer200512/13/202212SQLServer2005指定模版參數(shù)的值窗口的前三行分別是創(chuàng)建人、創(chuàng)建時間、描述,是對存儲過程進行注釋。從第四行開始,分別指定存儲過程名稱、參數(shù)名稱、數(shù)據(jù)類型、參數(shù)的缺省值。12/17/202242SQLServer2005指定模版參數(shù)的值窗口的前三行分別是創(chuàng)建人、創(chuàng)建時間、描述,是刪除掉參數(shù)@p2,并編寫相應的SQL語句。SQL語句如下:BEGIN --SETNOCOUNTONaddedtopreventextraresultsetsfrom --interferingwithSELECTstatements. SETNOCOUNTON;--Insertstatementsforprocedurehere SELECT[OrderDetails].*FROM[OrderDetails]WHERE(OrderID=@orderID)END點擊工具欄上的執(zhí)行按鈕來創(chuàng)建存儲過程,如沒有錯誤,消息框中則顯示“命令已成功完成”。12/17/202243SQLServer2005刪除掉參數(shù)@p2,并編寫相應的SQL語句。SQL語句如下:1用SQL語句創(chuàng)建存儲過程
使用CREATEPROCEDURE語句可以創(chuàng)建存儲過程。其語法如下:CREATEPROC[EDURE]procedure_name[;number][{@parameterdata_type}[VARYING][=default][OUTPUT]][,...n][WITH{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}][FORREPLICATION]ASsql_statement[...n]12/17/202244SQLServer2005用SQL語句創(chuàng)建存儲過程使用CREATEPROCEDUR只返回單一記錄集的存儲過程。查詢表Categories的內容的存儲過程USENorthwind;GOCREATEPROCGETCATEGORIESASSELECT*FROMCategories12/17/202245SQLServer2005只返回單一記錄集的存儲過程。12/13/202216SQL使用帶有通配符參數(shù)的簡單過程以下存儲過程只從視圖中返回指定的一些雇員(提供名和姓)及其職務和部門名稱。此存儲過程模式與所傳遞的參數(shù)相匹配;或者,如果未提供參數(shù),則使用預設的默認值(以字母D打頭的姓)。USENorthwind;GOCREATEPROCEDUREusp_GetEmployees@lastnamevarchar(40)='D%',@firstnamevarchar(20)='%'ASSELECTLastName,FirstName,Title,Address,CityFROMdbo.EmployeesWHEREFirstNameLIKE@firstnameANDLastNameLIKE@lastname;GO12/17/202246SQLServer2005使用帶有通配符參數(shù)的簡單過程12/13/202217SQL在存儲過程中使用輸入?yún)?shù)創(chuàng)建名為SalesbyYear的存儲過程,返回在兩個指定日期之間的所有銷售額。CREATEprocedureSalesbyYear @Beginning_DateDateTime,@Ending_DateDateTimeASIF@Beginning_DateISNULLOR@Ending_DateISNULLBEGINRAISERROR('NULLvaluesarenotallowed',14,1)RETURNENDSELECTOrders.ShippedDate,Orders.OrderID,"OrderSubtotals".Subtotal,DATENAME(yy,ShippedDate)ASYearFROMOrdersINNERJOIN"OrderSubtotals"ONOrders.OrderID="OrderSubtotals".OrderIDWHEREOrders.ShippedDateBetween@Beginning_DateAnd@Ending_Date;GO12/17/202247SQLServer2005在存儲過程中使用輸入?yún)?shù)12/13/202218SQLSe執(zhí)行存儲過程建立一個存儲過程以后,可以使用EXECUTE語句來執(zhí)行這個存儲過程。EXECUTE語句的語法如下:[{EXEC|EXECUTE}]
{
[@return_status=]
{procedure_name[;number]|@procedure_name_var}
[[@parameter=]{value|@variable[OUTPUT]|[DEFAULT]}]
[,...n]
[WITHRECOMPILE]
}12/17/202248SQLServer2005執(zhí)行存儲過程建立一個存儲過程以后,可以使用EXECUTE語句執(zhí)行存儲過程使用EXECUTE語句時應注意以下幾點:EXECUTE語句可以用于執(zhí)行系統(tǒng)存儲過程用戶定義存儲過程或擴展存儲過程,同時支持Transact-SQL批處理內的字符串的執(zhí)行。如果EXECUTE語句是批處理今的第一條語句,那么省略EXECUTE關鍵字也可以執(zhí)行該存儲過程向存儲過程傳遞參數(shù)時,如果使用“@參數(shù)=值”的形式,則可以按任何順序來提供參數(shù),還可以省略那些已經(jīng)提供默認值的參數(shù)。一旦以“@參數(shù)=值”形式提供了一個參數(shù),就必須按這種形式提供后面所有的參數(shù)。如果不是以“@參數(shù)=值”形式來提供參數(shù),則必須按照CREATEPROCEDURE語句中結出的順序提供參數(shù)。12/17/202249SQLServer2005執(zhí)行存儲過程使用EXECUTE語句時應注意以下幾點:12/1執(zhí)行存儲過程雖然可以省略已提供默認值的參數(shù),但只能截斷參數(shù)列表。例如,如果—個存儲過程有五個參數(shù),可以省略第四個和第五個參數(shù),但不能跳過第四個參數(shù)而仍然包含第五個參數(shù),除非以“@參數(shù)=值”形式提供參數(shù)。如果在建立存儲過程時定義了參數(shù)的默認值,那么下列情況下將使用默認值:執(zhí)行存儲過程時未指定該參數(shù)的值;將Default關鍵字指定為該參數(shù)的值。如果在存儲過程中使用了帶Like關鍵字的參數(shù)名稱,則提供的默認值必須是常量,并且可以包含%、_、[]、[^]通配符。12/17/202250SQLServer2005執(zhí)行存儲過程雖然可以省略已提供默認值的參數(shù),但只能截斷參數(shù)列通過參數(shù)名傳遞值執(zhí)行創(chuàng)建的存儲過程SalesbyYear。USENorthwind;GOEXECUTEdbo.SalesbyYear@Beginning_Date='1998-5-1',@Ending_Date='1998-5-6';GO通過定位傳遞值EXECUTEdbo.SalesbyYear'1998-5-1','1998-5-6';12/17/202251SQLServer2005通過參數(shù)名傳遞值12/13/202222SQLServer執(zhí)行帶有通配符參數(shù)的存儲過程執(zhí)行創(chuàng)建的存儲過程usp_GetEmployees。不指定參數(shù),則使用默認參數(shù)值執(zhí)行。USENorthwind;GOEXECUTEusp_GetEmployeesGO結果如下:LastNameFirstNameTitleAddressCity--------------------------------------------------------------DavolioNancySalesRepresentative507-20thAve.E.Apt.2ASeattleDodsworthAnneSalesRepresentativeHoun
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 吉林師范大學《數(shù)字通信原理》2021-2022學年第一學期期末試卷
- 吉林師范大學《流體力學》2021-2022學年第一學期期末試卷
- 真石漆施工質量保障方案
- 吉林師范大學《傳播學理論I》2021-2022學年第一學期期末試卷
- 汽車制造煙氣排放處理方案
- 吉林大學《通信原理A》2021-2022學年第一學期期末試卷
- 2025年上海市安全員C3證(專職安全員-綜合類)證模擬考試題庫及答案
- 外墻滲水治理的長期方案
- 2024客房租用合同協(xié)議書
- 吉林大學《汽車運用工程I》2021-2022學年第一學期期末試卷
- 教科版小學科學六年級上學期期中考試檢測試卷與答案(共5套)
- 運動安全與健康智慧樹知到期末考試答案章節(jié)答案2024年浙江大學
- 模具設計與制造生涯規(guī)劃報告
- (完整版)四宮格數(shù)獨題目204道(可直接打印)及空表(一年級數(shù)獨題練習)
- 1.1信息社會及其特征課件高中信息技術粵教版必修2
- 小學科學教科版六年級上冊全冊教案(2023秋)
- 《第1課時 勾股定理》公開課教學課件
- 《現(xiàn)代教育原理》課件
- 基礎知識疏散逃生
- 《推銷技術》課程教學大綱
- 三年級上冊多位數(shù)乘一位數(shù)豎式計算300題及答案
評論
0/150
提交評論