打開SQL Server 2005的管理工具,選中需要創(chuàng)建存儲過程的數(shù)據(jù)庫,找到“可編程性”,展開后可以看到“存儲過程”。右鍵點擊它,選擇“新建存儲過程”,右側(cè)的編輯窗口打開了,里面裝著微軟自動生成的SQL Server創(chuàng)建存儲過程的語句。
將存儲過程的名字,參數(shù),操作語句寫好后,點擊語法分析,沒有錯誤就直接“F5”運行就好了,存儲過程創(chuàng)建完畢,以下是一個基本的存儲過程的代碼:
1?CREATE?PROCEDURE?Get_Data???? 2????(???? 3????????@Dealer_ID?VARCHAR(50)??? 4?????)???? 5?????AS???? 6?SELECT?*?FROM?myData?WHERE?Dealer_ID?=?@Dealer_ID
點擊查看實際例子
既然創(chuàng)建存儲過程已經(jīng)會了,那么修改還會難嗎?顯然不會。修改存儲過程也是相當?shù)娜菀?。首先,刷新當前?shù)據(jù)庫的存儲過程列表,這時就能看到你剛創(chuàng)建的存儲過程的名字了,右鍵點擊它,選擇修改,右側(cè)又打開了一個編輯窗口,裝著的就是修改存儲過程的代碼(如下)
1?ALTER?PROCEDURE?[dbo].[Get_Data]???? 2????(???? 3????????@Dealer_ID?VARCHAR(50)??? 4?????)???? 5?????AS???? 6?SELECT?*?FROM?myData?WHERE?Dealer_ID?=?@Dealer_ID
簡單的修改下吧,代碼如下
1??ALTER?PROCEDURE?[dbo].[Get_Data]???? 2????(???? 3????????@Dealer_ID?VARCHAR(50), 4????????@Period?VARCHAR(20) 5?????)???? 6?????AS???? 7?????SELECT?*?FROM?myData?WHERE?Dealer_ID?=?@Dealer_ID?AND?Period?=?@Period
F5 成功執(zhí)行,修改存儲過程完成。
http://www.cnblogs.com/sosoft/
開始寫了一個存儲過程,用來實現(xiàn)數(shù)據(jù)的插入操作,說白了就是添加數(shù)據(jù)。這個存儲過程的代碼如下:
?1?CREATE?PROCEDURE?PROC_INSERT_DATA_ID ?2???@DealerID?varchar(50) ?3?AS ?4?BEGIN ?5?????????DECLARE?@COUNT??INT???? ?6????????? ?7?????????SET?@COUNT?=?(SELECT?COUNT(*)?FROM?myDATA_Details?WHERE?DealerID?=?@DealerID) ?8?????????IF?(@COUNT>0)???? ?9?????????????BEGIN???? 10?????????????????DELETE?FROM?myDATA_Details?WHERE?DealerID?=?@DealerID???? 11?????????????????INSERT?INTO?myDATA_Details?(DealerID)?VALUES?(@DealerID)???? 12?????????????END???? 13?????????ELSE???? 14?????????????BEGIN???? 15?????????????????INSERT?INTO?myDATA_Details?(DealerID)?VALUES?(@DealerID)???? 16?????????????END???? 17?????END 18?--實際例子:http://hovertree.com/hovertreescj/sql/p_hovertreescj_urls_add.htm
F5一下,創(chuàng)建成功,調(diào)用它插入數(shù)據(jù),OK,沒問題插入成功,達到了預(yù)期的目的
用于更新數(shù)據(jù),代碼如下:
?1?CREATE?PROCEDURE?PROC_INSERT_DATA_DETAIL ?2?????????@DealerID?varchar(50),? ?3?????????@FieldName?varchar(2000), ?4?????????@FieldValue?varchar(2000) ?5?????AS ?6?????BEGIN ?7?????????DECLARE?@Count?INT ?8?????????SET?@Count?=?(SELECT?COUNT(*)?FROM?myDATA_Details?WHERE?DealerID?=?@DealerID) ?9? 10?????????IF?(@COUNT>0) 11?????????????BEGIN 12?????????????????UPDATE?myDATA_Details?SET?DealValue?=?@FieldValue?WHERE?DealerID?=?@DealerID 13?????????????END 14?????????ELSE 15?????????????BEGIN 16?????????????????INSERT?INTO?myDATA_Details?(DealerID)?VALUES?(@DealerID) 17??????????????END 18?????END
或者:
修改后的代碼
?1?ALTER?PROCEDURE?PROC_INSERT_DATA_DETAIL ?2?????????@DealerID?varchar(50),? ?3?????????@FieldName?varchar(2000), ?4?????????@FieldValue?varchar(2000) ?5?????AS ?6?????BEGIN ?7?????????DECLARE?@Count?INT ?8?????????DECLARE?@StrSQL?VARCHAR(2000) ?9?????????SET?@Count?=?(SELECT?COUNT(*)?FROM?myDATA_Details?WHERE?DealerID?=?@DealerID) 10? 11?????????IF?(@COUNT>0) 12?????????????BEGIN 13?????????????????SET?@StrSQL?=?'UPDATE?myDATA_Details?SET?'+?@FieldName?+?'?=?'''?+@FieldValue?+?'''?WHERE?DealerID?=?'+?@DealerID 14?????????????????EXEC(@StrSQL) 15?????????????END 16?????????ELSE 17?????????????BEGIN 18?????????????????INSERT?INTO?myDATA_Details?(DealerID)?VALUES?(@DealerID) 19?????????????????SET?@StrSQL?=?'UPDATE?myDATA_Details?SET?'+?@FieldName?+?'?=?'''?+@FieldValue?+?'''?WHERE?DealerID?=?'+?@DealerID 20?????????????????EXEC(@StrSQL) 21?????????????END 22?????END
C#調(diào)用存儲過程例子:?http://www.cnblogs.com/sosoft/p/csccgc.html
開發(fā)技術(shù)文章收集?http://www.cnblogs.com/sosoft/p/kaifajishu.html