如何在SQL Server中生成和使用CRUD存儲過程

大多數數據庫系統基於4個最簡單的數據操做操做,這些操做稱爲CRUD。該首字母縮寫詞表明建立、讀取、更新和刪除。數據庫

在開發和管理數據庫時,可使用CRUD存儲過程來執行全部與數據有關的任務。這種存儲過程的好處是,一旦編寫了一次,即可以根據須要重複使用屢次,而無需每次都編寫新代碼。這是對臨時SQL語句的重大改進,臨時SQL語句應在每次使用它們時從新編寫。ide

讓咱們詳細瞭解每一個CRUD存儲過程。spa

仔細研究CRUD存儲過程插件

在繼續以前,咱們要說一下CRUD存儲過程的命名。將它們命名爲每一個過程都包含它們所應用的表的名稱,而且以它們所執行的操做的名稱結束,這一般是一種很好的作法。這樣,爲同一表編寫的全部過程將被分組在一塊兒,而且更容易搜索。code

可是,它不是強制性的,您能夠堅持本身喜歡的任何命名模式。orm

如今,讓咱們看一下第一種過程類型。blog

建立程序ip

這些將執行INSERT語句,建立一個新記錄。此類過程應爲表的每一列接受一個參數。開發

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

讀取程序it

READ過程根據輸入參數中提供的主鍵檢索表記錄。

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子句中指定的記錄的主鍵在表上執行UPDATE語句。就像CREATE過程同樣,它爲每一個表列接受一個參數。

<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過程,並具備多種選項,這些選項容許配置這些過程的生成方式。在本文中,咱們將使用SSMS展現SQL Complete的功能。

要爲一個表生成CRUD過程,右鍵單擊該表,轉到SQL Complete菜單,而後單擊Script Table as CRUD:

如何使用dbForge SQL Complete生成和使用CRUD存儲過程

完成此操做後,將打開一個新的SQL文件。在這裏,您能夠看到該表的全部CRUD操做。

如何使用dbForge SQL Complete生成和使用CRUD存儲過程

更改CRUD生成設置

要配置dbForge SQL Complete如何生成CRUD,您首先須要轉到窗口頂部的SQL Complete菜單,而後單擊「選項」:

如何使用dbForge SQL Complete生成和使用CRUD存儲過程

結果將在「選項」窗口中打開,轉到「CRUD」菜單,而後單擊「常規」:

如何使用dbForge SQL Complete生成和使用CRUD存儲過程

在此選項卡中,您能夠指定CRUD生成過程當中包括哪些過程,並指定要使用的哪一個列的順序——按字母順序仍是按序號順序。

您也能夠經過在CRUD菜單中選擇相應的選項來分別配置每一個過程。首先,您能夠手動更改生成的過程的名稱:

如何使用dbForge SQL Complete生成和使用CRUD存儲過程

接下來,每一個過程都有惟一的選項。

對於SELECT,若是輸入參數爲null,則有一個Return all data複選框。

對於INSERT,能夠指定是否在完成後返回插入的行。

相似的選項可用於UPDATE –它使您能夠選擇是否要返回更新的行。

沒有其餘用於DELETE的惟一選項。

最後,對於每一個過程,都有「代碼模板」部分。在本節中,您能夠更改指定過程的代碼的生成方式。在代碼模板中,以$ name $格式提供了參數(例如$ schema $或$ columns $)。經過更改這些參數,能夠修改所生成過程的代碼。

結論

如您所見,使用CRUD命令實現和管理數據操做過程比使用臨時SQL語句更爲可取,而且能夠藉助dbForge SQL Complete插件輕鬆完成此操做。

相關文章
相關標籤/搜索