SQLServer存儲(chǔ)過(guò)程創(chuàng)建和修改的實(shí)現(xiàn)代碼
打開(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ǔ)句寫好后,點(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)始寫了一個(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
以上所述是小編給大家介紹的SQLServer存儲(chǔ)過(guò)程創(chuàng)建和修改實(shí)現(xiàn)代碼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!
- SQL?Server的存儲(chǔ)過(guò)程詳解
- 使用SQL SERVER存儲(chǔ)過(guò)程實(shí)現(xiàn)歷史數(shù)據(jù)遷移方式
- SQL Server存儲(chǔ)過(guò)程在C#中調(diào)用的簡(jiǎn)單實(shí)現(xiàn)方法
- SQLServer2008存儲(chǔ)過(guò)程實(shí)現(xiàn)數(shù)據(jù)插入與更新
- SQLServer存儲(chǔ)過(guò)程實(shí)現(xiàn)單條件分頁(yè)
- SQL SERVER調(diào)用存儲(chǔ)過(guò)程小結(jié)
- 深入分析SQL Server 存儲(chǔ)過(guò)程
- SqlServer 2000、2005分頁(yè)存儲(chǔ)過(guò)程整理
- SQL Server數(shù)據(jù)庫(kù)中的存儲(chǔ)過(guò)程介紹
- SQL Server 2008 存儲(chǔ)過(guò)程示例
- 如何在SQL Server 2008下輕松調(diào)試T-SQL語(yǔ)句和存儲(chǔ)過(guò)程
- SQL?SERVER存儲(chǔ)過(guò)程用法詳解
相關(guān)文章
sqlserver 數(shù)據(jù)庫(kù)被注入解決方案
定義要去除的字符,請(qǐng)注意,肯定不止一條,我的服務(wù)器就查到許多不同的代碼2010-05-05SQLServer批量更新兩個(gè)關(guān)聯(lián)表數(shù)據(jù)的方法
這篇文章主要介紹了SQLServer批量更新兩個(gè)關(guān)聯(lián)表數(shù)據(jù)的方法,提供了2種關(guān)聯(lián)查詢與更新語(yǔ)句的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-08-08sql腳本查詢數(shù)據(jù)庫(kù)表,數(shù)據(jù),結(jié)構(gòu),約束等操作的方法
本文介紹了“sql腳本查詢數(shù)據(jù)庫(kù)表,數(shù)據(jù),結(jié)構(gòu),約束等操作的方法”,需要的朋友可以參考一下2013-03-03必須會(huì)的SQL語(yǔ)句(八) 數(shù)據(jù)庫(kù)的完整性約束
這篇文章主要介紹了sqlserver中數(shù)據(jù)庫(kù)的完整性約束使用方法,需要的朋友可以參考下2015-01-01SQL Server誤區(qū)30日談 第23天 有關(guān)鎖升級(jí)的誤區(qū)
在SQL Server 2005和之前的版本,頁(yè)鎖會(huì)直接升級(jí)到表鎖。在SQL Server 2005或SQL Server 2008,你可以通過(guò)如下跟蹤標(biāo)志改變鎖升級(jí)的行為2013-01-01在SQL中使用convert函數(shù)進(jìn)行日期的查詢的代碼
在SQL中使用convert函數(shù)進(jìn)行日期的查詢的代碼...2007-08-08SQLserver存儲(chǔ)過(guò)程寫法與設(shè)置定時(shí)執(zhí)行存儲(chǔ)過(guò)程方法詳解
一直都很想了解如何寫存儲(chǔ)過(guò)程,對(duì)于不熟悉的東西,總是覺(jué)得很神秘,下面這篇文章主要給大家介紹了關(guān)于SQLserver存儲(chǔ)過(guò)程寫法與設(shè)置定時(shí)執(zhí)行存儲(chǔ)過(guò)程方法的相關(guān)資料,需要的朋友可以參考下2023-03-03SqlServer常用函數(shù)及時(shí)間處理小結(jié)
這篇文章主要介紹了SqlServer常用函數(shù)及時(shí)間處理小結(jié),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05