SQL 是一款用于 SQL 和 的功能強大的插件。SQL代碼格式化程序(免費版和高級付費版)能夠提供可以取代原生的 T-SQL 特性的T-SQL代碼自動實現(xiàn)和格式化功能。
在線訂購 試用下載
大多數(shù)數(shù)據(jù)庫系統(tǒng)基于4個最簡單的數(shù)據(jù)操作操作,這些操作稱為CRUD。該首字母縮寫詞代表創(chuàng)建、讀取、更新和刪除。
在開發(fā)和管理數(shù)據(jù)庫時,可以使用CRUD存儲過程來執(zhí)行所有與數(shù)據(jù)有關(guān)的任務(wù)。這種存儲過程的好處是,一旦編寫了一次,便可以根據(jù)需要重復(fù)使用多次,而無需每次都編寫新代碼。這是對臨時SQL語句的重大改進,臨時SQL語句應(yīng)在每次使用它們時重新編寫。
讓我們詳細了解每個CRUD存儲過程。
仔細研究CRUD存儲過程
在繼續(xù)之前,我們要說一下CRUD存儲過程的命名。將它們命名為每個過程都包含它們所應(yīng)用的表的名稱,并且以它們所執(zhí)行的操作的名稱結(jié)束,這通常是一種很好的做法。這樣動軟代碼生成器 存儲過程,為同一表編寫的所有過程將被分組在一起,并且更容易搜索。
但是,它不是強制性的,您可以堅持自己喜歡的任何命名模式。
現(xiàn)在,讓我們看一下第一種過程類型。
創(chuàng)建程序
這些將執(zhí)行語句,創(chuàng)建一個新記錄。此類過程應(yīng)為表的每一列接受一個參數(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í)行語句。就像過程一樣,它為每個表列接受一個參數(shù)。
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
刪除程序
此過程將刪除該語句的WHERE子句中提供的行。
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
使用 SQL 生成CRUD過程
在SSMS和 中均可使用的 SQL 插件,我們只需單擊幾下便可以生成CRUD過程,并具有多種選項,這些選項允許配置這些過程的生成方式。在本文中,我們將使用SSMS展示SQL 的功能。
要為一個表生成CRUD過程,右鍵單擊該表,轉(zhuǎn)到SQL 菜單動軟代碼生成器 存儲過程,然后單擊 Table as CRUD:
完成此操作后,將打開一個新的SQL文件。在這里,您可以看到該表的所有CRUD操作。
更改CRUD生成設(shè)置
要配置 SQL 如何生成CRUD,您首先需要轉(zhuǎn)到窗口頂部的SQL 菜單,然后單擊“選項”:
結(jié)果將在“選項”窗口中打開,轉(zhuǎn)到“CRUD”菜單,然后單擊“常規(guī)”:
在此選項卡中,您可以指定CRUD生成過程中包括哪些過程,并指定要使用的哪個列的順序——按字母順序還是按序號順序。
您也可以通過在CRUD菜單中選擇相應(yīng)的選項來分別配置每個過程。首先,您可以手動更改生成的過程的名稱:
接下來,每個過程都有唯一的選項。
對于,如果輸入?yún)?shù)為null,則有一個 all data復(fù)選框。
對于,可以指定是否在完成后返回插入的行。
類似的選項可用于 –它使您可以選擇是否要返回更新的行。
沒有其他用于的唯一選項。
最后,對于每個過程,都有“代碼模板”部分。在本節(jié)中,您可以更改指定過程的代碼的生成方式。在代碼模板中,以$ name $格式提供了參數(shù)(例如$ $或$ $)。通過更改這些參數(shù),可以修改所生成過程的代碼。
結(jié)論
如您所見,使用CRUD命令實現(xiàn)和管理數(shù)據(jù)操作過程比使用臨時SQL語句更為可取,并且可以借助 SQL 插件輕松完成此操作。您可以通過下載該工具的免費試用版來自行檢查其功能。