共計(jì) 2588 個(gè)字符,預(yù)計(jì)需要花費(fèi) 7 分鐘才能閱讀完成。
這篇文章給大家介紹 SQLServer 中怎么創(chuàng)建存儲(chǔ)過(guò)程,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
打開(kāi) SQL Server 2005 的管理工具,選中需要?jiǎng)?chuàng)建存儲(chǔ)過(guò)程的數(shù)據(jù)庫(kù),找到“可編程性”,展開(kāi)后可以看到“存儲(chǔ)過(guò)程”。右鍵點(diǎn)擊它,選擇“新建存儲(chǔ)過(guò)程”,右側(cè)的編輯窗口打開(kāi)了,里面裝著微軟自動(dòng)生成的 SQL Server 創(chuàng)建存儲(chǔ)過(guò)程的語(yǔ)句。
將存儲(chǔ)過(guò)程的名字,參數(shù),操作語(yǔ)句寫(xiě)好后,點(diǎn)擊語(yǔ)法分析,沒(méi)有錯(cuò)誤就直接“F5”運(yùn)行就好了,存儲(chǔ)過(guò)程創(chuàng)建完畢,以下是一個(gè)基本的存儲(chǔ)過(guò)程的代碼:
CREATE PROCEDURE Get_Data ( @Dealer_ID VARCHAR( strong 50 /strong) ) AS SELECT * FROM myData WHERE Dealer_ID = @Dealer_ID
點(diǎn)擊查看實(shí)際例子
既然創(chuàng)建存儲(chǔ)過(guò)程已經(jīng)會(huì)了,那么修改還會(huì)難嗎?顯然不會(huì)。修改存儲(chǔ)過(guò)程也是相當(dāng)?shù)娜菀住J紫龋⑿庐?dāng)前數(shù)據(jù)庫(kù)的存儲(chǔ)過(guò)程列表,這時(shí)就能看到你剛創(chuàng)建的存儲(chǔ)過(guò)程的名字了,右鍵點(diǎn)擊它,選擇修改,右側(cè)又打開(kāi)了一個(gè)編輯窗口,裝著的就是修改存儲(chǔ)過(guò)程的代碼(如下)
ALTER PROCEDURE [dbo].[Get_Data] ( @Dealer_ID VARCHAR( strong 50 /strong) ) AS SELECT * FROM myData WHERE Dealer_ID = @Dealer_ID
簡(jiǎn)單的修改下吧,代碼如下
ALTER PROCEDURE [dbo].[Get_Data] ( @Dealer_ID VARCHAR( strong 50 /strong), @Period VARCHAR(strong 20 /strong) ) AS SELECT * FROM myData WHERE Dealer_ID = @Dealer_ID AND Period = @Period
F5 成功執(zhí)行,修改存儲(chǔ)過(guò)程完成。
開(kāi)始寫(xiě)了一個(gè)存儲(chǔ)過(guò)程,用來(lái)實(shí)現(xiàn)數(shù)據(jù)的插入操作,說(shuō)白了就是添加數(shù)據(jù)。這個(gè)存儲(chǔ)過(guò)程的代碼如下:
CREATE PROCEDURE PROC_INSERT_DATA_ID @DealerID varchar(strong 50 /strong) AS BEGIN 5 DECLARE @COUNT INT SET @COUNT = (SELECT COUNT(*) FROM myDATA_Details WHERE DealerID = @DealerID) IF (@COUNT strong 0 /strong) BEGIN DELETE FROM myDATA_Details WHERE DealerID = @DealerID INSERT INTO myDATA_Details (DealerID) VALUES (@DealerID) END ELSE BEGIN INSERT INTO myDATA_Details (DealerID) VALUES (@DealerID) END END -- 實(shí)際例子:http://hovertree.com/hovertreescj/sql/p_hovertreescj_urls_add.htm
F5 一下,創(chuàng)建成功,調(diào)用它插入數(shù)據(jù),OK,沒(méi)問(wèn)題插入成功,達(dá)到了預(yù)期的目的
用于更新數(shù)據(jù),代碼如下:
CREATE PROCEDURE PROC_INSERT_DATA_DETAIL @DealerID varchar(strong 50 /strong), @FieldName varchar(strong 2000 /strong), @FieldValue varchar(strong 2000 /strong) AS BEGIN DECLARE @Count INT SET @Count = (SELECT COUNT(*) FROM myDATA_Details WHERE DealerID = @DealerID) IF (@COUNT strong 0 /strong) BEGIN UPDATE myDATA_Details SET DealValue = @FieldValue WHERE DealerID = @DealerID END ELSE BEGIN INSERT INTO myDATA_Details (DealerID) VALUES (@DealerID) END END
或者:
修改后的代碼
ALTER PROCEDURE PROC_INSERT_DATA_DETAIL @DealerID varchar(strong 50 /strong), @FieldName varchar(strong 2000 /strong), @FieldValue varchar(strong 2000 /strong) AS BEGIN DECLARE @Count INT DECLARE @StrSQL VARCHAR(strong 2000 /strong) SET @Count = (SELECT COUNT(*) FROM myDATA_Details WHERE DealerID = @DealerID) IF (@COUNT strong 0 /strong) BEGIN SET @StrSQL = UPDATE myDATA_Details SET + @FieldName + = +@FieldValue + WHERE DealerID = + @DealerID EXEC(@StrSQL) END ELSE BEGIN INSERT INTO myDATA_Details (DealerID) VALUES (@DealerID) SET @StrSQL = UPDATE myDATA_Details SET + @FieldName + = +@FieldValue + WHERE DealerID = + @DealerID EXEC(@StrSQL) END END
關(guān)于 SQLServer 中怎么創(chuàng)建存儲(chǔ)過(guò)程就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。