日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

写存储过程与调用存储过程

發布時間:2024/8/26 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 写存储过程与调用存储过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
--創建存儲過程的語法
if exists(select * from sysobjects where name='sp_selectStudent')
?drop procedure sp_selectStudent
go
create procedure sp_selectStudent
???? --定義參數
???? @gradeid int
???? --可以定義輸出參數,也有返回值,只有返回整型 return 0
as
?select * from Student where XSGrade=@gradeid
?--寫語句
go
--調用存儲過程
exec sp_selectStudent 10
----增加年級的存儲過程
if exists(select * from sysobjects where name='sp_addGrade')
?drop procedure sp_addGrade
go
create procedure sp_addGrade? --定義存儲過程
?@njname varchar(20)? --定義參數 各個參數,隔開
as
?insert into Grade(NJName) values(@njname)
go
--調用存儲過程
exec sp_addGrade 'S1'
--刪除年級的存儲過程,如果有學生,先刪學生,再刪年級
--[存儲過程封裝業務功能,使用事務]?
if exists(select * from sysobjects where name='sp_deleteGrade')
?drop procedure sp_deleteGrade
go
create procedure sp_deleteGrade
?@gradeid int --要刪除的年級id
as
?begin transaction --1開啟事務
?declare @err int --2.錯誤變量
?set @err=0
?--一個語句一個語句執行
?delete from Student where XSGrade=@gradeid
?set @err=@err+@@ERROR --錯誤累加
?--
?delete from Grade where NJId=@gradeid
?set @err=@err+@@ERROR
?--
?if(@err>0)
??begin
??? rollback transaction--回退事務
??end
?else
??begin
??? commit? transaction? --提交事務
??end
go ----------------ADO.net調用存儲過程
#region 調用刪除年級的存儲過程[調用增刪改的存儲過程方式]
???????? public void DelteGradePro(int gradeid)
???????? {
???????????? //1.創建連接對象
???????????? string Connstring = "Data Source=.;Initial Catalog=y2Net22DB;Integrated Security=True";
???????????? SqlConnection sqlconn = new SqlConnection(Connstring);
???????????? //2.執行的sql語句或者存儲過程名稱
???????????? string sql = "sp_deleteGrade";//存儲過程名
???????????? SqlCommand sqlcomm = new SqlCommand(sql, sqlconn);
???????????? //?? 存儲過程一定加上操作類型屬性
???????????? sqlcomm.CommandType = CommandType.StoredProcedure;//說明是存儲過程還是sql語句
???????????? //? 給存儲過程的輸入參數賦值
???????????? sqlcomm.Parameters.Add("@gradeid", gradeid);
???????????? //3.打開連接
???????????? sqlconn.Open();
???????????? //4.執行操作
???????????? sqlcomm.ExecuteNonQuery();
???????????? //5.關閉
???????????? sqlconn.Close();
???????? }
???????? #endregion

轉載于:https://www.cnblogs.com/xsdm/p/1060534414_qq10.html

總結

以上是生活随笔為你收集整理的写存储过程与调用存储过程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。