如何在SQLServer中生成和使用CRUD存儲(chǔ)過(guò)程

大多數(shù)數(shù)據(jù)庫(kù)系統(tǒng)基于4個(gè)最簡(jiǎn)單的數(shù)據(jù)操作操作,這些操作稱為CRUD。該首字母縮寫(xiě)詞代表創(chuàng)建、讀取、更新和刪除。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名申請(qǐng)、網(wǎng)絡(luò)空間、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、雨城網(wǎng)站維護(hù)、網(wǎng)站推廣。

在開(kāi)發(fā)和管理數(shù)據(jù)庫(kù)時(shí),可以使用CRUD存儲(chǔ)過(guò)程來(lái)執(zhí)行所有與數(shù)據(jù)有關(guān)的任務(wù)。這種存儲(chǔ)過(guò)程的好處是,一旦編寫(xiě)了一次,便可以根據(jù)需要重復(fù)使用多次,而無(wú)需每次都編寫(xiě)新代碼。這是對(duì)臨時(shí)SQL語(yǔ)句的重大改進(jìn),臨時(shí)SQL語(yǔ)句應(yīng)在每次使用它們時(shí)重新編寫(xiě)。

讓我們?cè)敿?xì)了解每個(gè)CRUD存儲(chǔ)過(guò)程。

仔細(xì)研究CRUD存儲(chǔ)過(guò)程

在繼續(xù)之前,我們要說(shuō)一下CRUD存儲(chǔ)過(guò)程的命名。將它們命名為每個(gè)過(guò)程都包含它們所應(yīng)用的表的名稱,并且以它們所執(zhí)行的操作的名稱結(jié)束,這通常是一種很好的做法。這樣,為同一表編寫(xiě)的所有過(guò)程將被分組在一起,并且更容易搜索。

但是,它不是強(qiáng)制性的,您可以堅(jiān)持自己喜歡的任何命名模式。

現(xiàn)在,讓我們看一下第一種過(guò)程類(lèi)型。

創(chuàng)建程序

這些將執(zhí)行INSERT語(yǔ)句,創(chuàng)建一個(gè)新記錄。此類(lèi)過(guò)程應(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過(guò)程根據(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

更新程序

這些過(guò)程使用WHERE子句中指定的記錄的主鍵在表上執(zhí)行UPDATE語(yǔ)句。就像CREATE過(guò)程一樣,它為每個(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>

刪除程序

此過(guò)程將刪除該語(yǔ)句的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過(guò)程

在SSMS和Visual Studio中均可使用的dbForge SQL Complete插件,我們只需單擊幾下便可以生成CRUD過(guò)程,并具有多種選項(xiàng),這些選項(xiàng)允許配置這些過(guò)程的生成方式。在本文中,我們將使用SSMS展示SQL Complete的功能。

要為一個(gè)表生成CRUD過(guò)程,右鍵單擊該表,轉(zhuǎn)到SQL Complete菜單,然后單擊Script Table as CRUD:

如何在SQL Server中生成和使用CRUD存儲(chǔ)過(guò)程

完成此操作后,將打開(kāi)一個(gè)新的SQL文件。在這里,您可以看到該表的所有CRUD操作。

如何在SQL Server中生成和使用CRUD存儲(chǔ)過(guò)程

更改CRUD生成設(shè)置

要配置dbForge SQL Complete如何生成CRUD,您首先需要轉(zhuǎn)到窗口頂部的SQL Complete菜單,然后單擊“選項(xiàng)”:

如何在SQL Server中生成和使用CRUD存儲(chǔ)過(guò)程

結(jié)果將在“選項(xiàng)”窗口中打開(kāi),轉(zhuǎn)到“CRUD”菜單,然后單擊“常規(guī)”:

如何在SQL Server中生成和使用CRUD存儲(chǔ)過(guò)程

在此選項(xiàng)卡中,您可以指定CRUD生成過(guò)程中包括哪些過(guò)程,并指定要使用的哪個(gè)列的順序——按字母順序還是按序號(hào)順序。

您也可以通過(guò)在CRUD菜單中選擇相應(yīng)的選項(xiàng)來(lái)分別配置每個(gè)過(guò)程。首先,您可以手動(dòng)更改生成的過(guò)程的名稱:

如何在SQL Server中生成和使用CRUD存儲(chǔ)過(guò)程

接下來(lái),每個(gè)過(guò)程都有唯一的選項(xiàng)。

對(duì)于SELECT,如果輸入?yún)?shù)為null,則有一個(gè)Return all data復(fù)選框。

對(duì)于INSERT,可以指定是否在完成后返回插入的行。

類(lèi)似的選項(xiàng)可用于UPDATE –它使您可以選擇是否要返回更新的行。

沒(méi)有其他用于DELETE的唯一選項(xiàng)。

最后,對(duì)于每個(gè)過(guò)程,都有“代碼模板”部分。在本節(jié)中,您可以更改指定過(guò)程的代碼的生成方式。在代碼模板中,以$ name $格式提供了參數(shù)(例如$ schema $或$ columns $)。通過(guò)更改這些參數(shù),可以修改所生成過(guò)程的代碼。

結(jié)論

如您所見(jiàn),使用CRUD命令實(shí)現(xiàn)和管理數(shù)據(jù)操作過(guò)程比使用臨時(shí)SQL語(yǔ)句更為可取,并且可以借助dbForge SQL Complete插件輕松完成此操作。

網(wǎng)站題目:如何在SQLServer中生成和使用CRUD存儲(chǔ)過(guò)程
網(wǎng)站地址:http://bm7419.com/article18/jdsddp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、品牌網(wǎng)站設(shè)計(jì)手機(jī)網(wǎng)站建設(shè)、網(wǎng)站改版、網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

小程序開(kāi)發(fā)