翻譯|使用教程|編輯:莫成敏|2019-12-09 15:17:18.903|閱讀 284 次
概述:本文介紹了CRUD存儲(chǔ)過程的命名,以及生成CRUD存儲(chǔ)過程,更改CRUD生成設(shè)置等內(nèi)容
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
dbForge SQL Complete是一款用于Microsoft SQL Server Management Studio和Microsoft Visual Studio的功能強(qiáng)大的插件。SQL代碼格式化程序(免費(fèi)版和高級(jí)付費(fèi)版)能夠提供可以取代原生的Microsoft T-SQL Intellisense特性的T-SQL代碼自動(dòng)實(shí)現(xiàn)和格式化功能。
大多數(shù)數(shù)據(jù)庫系統(tǒng)基于4個(gè)最簡(jiǎn)單的數(shù)據(jù)操作操作,這些操作稱為CRUD。該首字母縮寫詞代表創(chuàng)建、讀取、更新和刪除。
在開發(fā)和管理數(shù)據(jù)庫時(shí),可以使用CRUD存儲(chǔ)過程來執(zhí)行所有與數(shù)據(jù)有關(guān)的任務(wù)。這種存儲(chǔ)過程的好處是,一旦編寫了一次,便可以根據(jù)需要重復(fù)使用多次,而無需每次都編寫新代碼。這是對(duì)臨時(shí)SQL語句的重大改進(jìn),臨時(shí)SQL語句應(yīng)在每次使用它們時(shí)重新編寫。
讓我們?cè)敿?xì)了解每個(gè)CRUD存儲(chǔ)過程。
仔細(xì)研究CRUD存儲(chǔ)過程
在繼續(xù)之前,我們要說一下CRUD存儲(chǔ)過程的命名。將它們命名為每個(gè)過程都包含它們所應(yīng)用的表的名稱,并且以它們所執(zhí)行的操作的名稱結(jié)束,這通常是一種很好的做法。這樣,為同一表編寫的所有過程將被分組在一起,并且更容易搜索。
但是,它不是強(qiáng)制性的,您可以堅(jiān)持自己喜歡的任何命名模式。
現(xiàn)在,讓我們看一下第一種過程類型。
創(chuàng)建程序
這些將執(zhí)行INSERT語句,創(chuàng)建一個(gè)新記錄。此類過程應(yīng)為表的每一列接受一個(gè)參數(shù)。
IF OBJECT_ID('Sales.usp_Currency_Insert') IS NOT NULL BEGIN DROP PROC Sales.usp_Currency_Insert END GO CREATE PROC Sales.usp_Currency_Insert @CurrencyCode NCHAR(3), @Name dbo.Name, @ModifiedDate datetime AS SET NOCOUNT ON SET XACT_ABORT ON BEGIN TRAN INSERT INTO Sales.Currency (CurrencyCode, Name, ModifiedDate) SELECT @CurrencyCode, @Name, @ModifiedDate /* -- Begin Return row code block SELECT CurrencyCode, Name, ModifiedDate FROM Sales.Currency WHERE CurrencyCode = @CurrencyCode AND Name = @Name AND ModifiedDate = @ModifiedDate -- End Return row code block */ COMMIT GO
讀取程序
READ過程根據(jù)輸入?yún)?shù)中提供的主鍵檢索表記錄。
IF OBJECT_ID('Sales.usp_Currency_Select') IS NOT NULL BEGIN DROP PROC Sales.usp_Currency_Select END GO CREATE PROC Sales.usp_Currency_Select @CurrencyCode NCHAR(3), @Name dbo.Name AS SET NOCOUNT ON SET XACT_ABORT ON BEGIN TRAN SELECT CurrencyCode, Name, ModifiedDate FROM Sales.Currency WHERE CurrencyCode = @CurrencyCode AND Name = @Name COMMIT GO
更新程序
這些過程使用WHERE子句中指定的記錄的主鍵在表上執(zhí)行UPDATE語句。就像CREATE過程一樣,它為每個(gè)表列接受一個(gè)參數(shù)。
<code>IF OBJECT_ID('Sales.usp_Currency_Update') IS NOT NULL BEGIN DROP PROC Sales.usp_Currency_Update END GO CREATE PROC Sales.usp_Currency_Update @CurrencyCode NCHAR(3), @Name dbo.Name, @ModifiedDate datetime AS SET NOCOUNT ON SET XACT_ABORT ON BEGIN TRAN UPDATE Sales.Currency SET ModifiedDate = @ModifiedDate WHERE CurrencyCode = @CurrencyCode AND Name = @Name /* -- Begin Return row code block SELECT ModifiedDate FROM Sales.Currency WHERE CurrencyCode = @CurrencyCode AND Name = @Name -- End Return row code block */ COMMIT GO</code>
刪除程序
此過程將刪除該語句的WHERE子句中提供的行。
<code>IF OBJECT_ID('Sales.usp_Currency_Delete') IS NOT NULL BEGIN DROP PROC Sales.usp_Currency_Delete END GO CREATE PROC Sales.usp_Currency_Delete @CurrencyCode NCHAR(3), @Name dbo.Name AS SET NOCOUNT ON SET XACT_ABORT ON BEGIN TRAN DELETE FROM Sales.Currency WHERE CurrencyCode = @CurrencyCode AND Name = @Name COMMIT GO</code>
使用dbForge SQL Complete生成CRUD過程
在SSMS和Visual Studio中均可使用的dbForge SQL Complete插件,我們只需單擊幾下便可以生成CRUD過程,并具有多種選項(xiàng),這些選項(xiàng)允許配置這些過程的生成方式。在本文中,我們將使用SSMS展示SQL Complete的功能。
要為一個(gè)表生成CRUD過程,右鍵單擊該表,轉(zhuǎn)到SQL Complete菜單,然后單擊Script Table as CRUD:
完成此操作后,將打開一個(gè)新的SQL文件。在這里,您可以看到該表的所有CRUD操作。
更改CRUD生成設(shè)置
要配置dbForge SQL Complete如何生成CRUD,您首先需要轉(zhuǎn)到窗口頂部的SQL Complete菜單,然后單擊“選項(xiàng)”:
結(jié)果將在“選項(xiàng)”窗口中打開,轉(zhuǎn)到“CRUD”菜單,然后單擊“常規(guī)”:
在此選項(xiàng)卡中,您可以指定CRUD生成過程中包括哪些過程,并指定要使用的哪個(gè)列的順序——按字母順序還是按序號(hào)順序。
您也可以通過在CRUD菜單中選擇相應(yīng)的選項(xiàng)來分別配置每個(gè)過程。首先,您可以手動(dòng)更改生成的過程的名稱:
接下來,每個(gè)過程都有唯一的選項(xiàng)。
對(duì)于SELECT,如果輸入?yún)?shù)為null,則有一個(gè)Return all data復(fù)選框。
對(duì)于INSERT,可以指定是否在完成后返回插入的行。
類似的選項(xiàng)可用于UPDATE –它使您可以選擇是否要返回更新的行。
沒有其他用于DELETE的唯一選項(xiàng)。
最后,對(duì)于每個(gè)過程,都有“代碼模板”部分。在本節(jié)中,您可以更改指定過程的代碼的生成方式。在代碼模板中,以$ name $格式提供了參數(shù)(例如$ schema $或$ columns $)。通過更改這些參數(shù),可以修改所生成過程的代碼。
結(jié)論
如您所見,使用CRUD命令實(shí)現(xiàn)和管理數(shù)據(jù)操作過程比使用臨時(shí)SQL語句更為可取,并且可以借助dbForge SQL Complete插件輕松完成此操作。您可以通過下載該工具的免費(fèi)試用版來自行檢查其功能。
想要購(gòu)買該產(chǎn)品請(qǐng)點(diǎn)擊【在線訂購(gòu)】,想要了解更多產(chǎn)品信息請(qǐng)點(diǎn)擊
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: