SQLServer存儲過程創建和修改的實現代碼

這篇文章主要介紹了sqlserver存儲過程創建和修改的實現代碼,需要的朋友可以參考下

打開SQL Server 2005的管理工具,選中需要創建存儲過程的數據庫,找到“可編程性”,展開后可以看到“存儲過程”。右鍵點擊它,選擇“新建存儲過程”,右側的編輯窗口打開了,里面裝著微軟自動生成的SQL Server創建存儲過程的語句。

將存儲過程的名字,參數,操作語句寫好后,點擊語法分析,沒有錯誤就直接“F5”運行就好了,存儲過程創建完畢,以下是一個基本的存儲過程的代碼:

?CREATE?PROCEDURE?Get_Data??  ??(??  ????@Dealer_ID?VARCHAR(<strong>50</strong>)??  ???)??  ???AS??  ?SELECT?*?FROM?myData?WHERE?Dealer_ID?=?@Dealer_ID

點擊查看實際例子

既然創建存儲過程已經會了,那么修改還會難嗎?顯然不會。修改存儲過程也是相當的容易。首先,刷新當前數據庫的存儲過程列表,這時就能看到你剛創建的存儲過程的名字了,右鍵點擊它,選擇修改,右側又打開了一個編輯窗口,裝著的就是修改存儲過程的代碼(如下)

?ALTER?PROCEDURE?[dbo].[Get_Data]??  ??(??  ????@Dealer_ID?VARCHAR(<strong>50</strong>)??  ???)??  ???AS??  ?SELECT?*?FROM?myData?WHERE?Dealer_ID?=?@Dealer_ID

簡單的修改下吧,代碼如下

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 成功執行,修改存儲過程完成。

開始寫了一個存儲過程,用來實現數據的插入操作,說白了就是添加數據。這個存儲過程的代碼如下:

?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&gt;<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  ?--實際例子:http://hovertree.com/hovertreescj/sql/p_hovertreescj_urls_add.htm

F5一下,創建成功,調用它插入數據,OK,沒問題插入成功,達到了預期的目的

用于更新數據,代碼如下:

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&gt;<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&gt;<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

? 版權聲明
THE END
喜歡就支持一下吧
點贊8 分享