久久机这里只有精品,国产69精品一区二区亚洲孕妇,91精品国产综合久久婷婷香蕉,午夜久久久久久电影

最新活動:電腦PC端+手機端+微網站+自適應網頁多模板選擇-建站388元起價!?。?
當前位置:主頁 > 網站建設 > sqlserver 存儲過程帶事務 拼接id 返回值建站知識

sqlserver 存儲過程帶事務 拼接id 返回值建站知識

時間:2023-05-23 16:05:23 閱讀: 文章分類: 網站建設 作者: 網站編輯員

導讀:1建站知識存儲過程帶事務,拼接id,返回值 以下SQL以防以后還需用到,特此備份網站seo優化課程網站優化seo培訓。

網站seo優化課程網站優化seo培訓刪除一條留言信息會級聯刪除回復信息,這時我們需要用到事務,如下SQL

復制代碼 代碼如下:

ALTER PROCEDURE [dbo].[proc_tb_leaveword_delete] ( @leavewordID INT, @record TINYINT OUTPUT ) AS BEGIN BEGIN TRY BEGIN TRANSACTION DELETE FROM tb_leavewordID WHERE leavewordID=@leavewordID DELETE FROM tb_reply WHERE leavewordID=@leavewordID SET @record=0 --成功 COMMIT TRANSACTION END TRY BEGIN CATCH ROLLBACK TRANSACTION SET @record=-1 --失敗 END CATCH RETURN @record END

刪除一條新聞,一條新聞可能有多條留言,每條留言可能有回復信息,這時我們刪除一條新聞的SQL如下

復制代碼 代碼如下:

ALTER PROCEDURE [dbo].[pr個業網站建設公司oc_tb_news_delete] ( @newsID INT, @record TINYINT OUTPUT ) AS BEGIN DECLARE @leavewordCount INT --留言個數 DECLARE @delete_where VARCHAR(4000) --留言id字符,類似1,2,4,5,6 SET @leavewordCount=(SELECT ISNULL(COUNT(1),0) FROM tb_leaveword WHERE newsID=@newsID) SET @delete_where='' IF(@leavewordCount=0) --此條新聞無留言時 BEGIN TRY DELETE FROM tb_news WHERE newsID=@newsID SET @record=0 --成功 END TRY BEGIN CATCH SET @record=-1 --失敗 END CATCH ELSE IF(@leavewordCount>0) --此條新聞有留言時 ----獲取刪除條件(start)---- DECLARE MY_CURSOR CURSOR FOR SELECT leavewordID FROM tb_news WHERE newsID=@newsID BEGIN DECLARE @leavewordID INT OPEN MY_CURSOR FETCH NEXT FROM MY_CURSOR INTO @leavewordID IF(@leavewordID IS NOT NULL) SET @delete_where=@delete_where+CAST(@leavewordID AS VARCHAR(10))+',' WHILE(@@FETCH_STATUS<>-1) BEGIN SET @leavewordID=NULL FETCH NEXT FROM MY_CURSOR INTO @leavewordID IF(@leavewordID IS NOT NULL) SET @delete_where=@delete_where+CAST(@leavewordID AS VARCHAR(10))+',' END END CLOSE MY_CURSOR DEALLOCATE MY_CURSOR SET @delete_where=SUBSTRING(@delete_where,1,LEN(@delete_where)-1) ----獲取刪除條件(end)---- BEGIN BEGIN TRY BEGIN TRANSACTION DELETE FROM tb_news WHERE newsID=@newsID EXECUTE('DELETE FROM tb_leaveword WHERE leavewordID IN('+@delete_where+')') EXECUTE('DELETE FROM tb_reply WHERE leavewordID IN('+@delete_where+')') SET @record=0 --成功 COMMIT TRANSACTION END TRY BEGIN CATCH ROLLBACK TRANSACTION SET @record=-1 --失敗 END CATCH END RETURN @record END

刪除一新聞類型時,可能此類型下有多條新聞,此條新聞下又有多條留言,留言下又有多條回復,依次級聯刪除,如下存儲過程

復制代碼 代碼如下:

ALTER PROCEDURE [dbo].[proc_tb_news_type_delete] ( @typeID INT, @record TINYINT OUTPUT ) AS BEGIN DECLARE @newsCount INT --此類新聞下的新聞個數 SET @newsCount=(SELECT ISNULL(COUNT(1),0) FROM tb_news WHERE typeID=@typeID) IF(@newsCount=0) --此類型下無新聞 BEGIN TRY DELETE FROM tb_news_type WHERE typeID=@typeID SET @record=0 --成功 END TRY BEGIN CATCH SET @record=-1 --失敗 END CATCH ELSE IF(@newsCount>0) --此類型下有新聞 BEGIN TRY BEGIN TRANSACTION DECLARE MY_CURDOR CURSOR FOR SELECT newsID FROM tb_news WHERE typeID=@typeID BEGIN DECLARE @newsID INT OPEN MY_CURSOR FETCH NEXT FROM MY_CURSOR INTO @newsID IF(@newsID IS NOT NULL) DELETE FROM tb_news_type WHERE typeID=@typeID EXECUTE proc_tb_news_delete @newsID=@newsID --執行存儲過程 WHILE(@@FETCH_STATUS<>-1) BEGIN SET @newsID=NULL FETCH NEXT FROM MY_CURSOR INTO @newsID IF(@newsID IS NOT NULL) DELETE FROM tb_news_type WHERE typeID=@typeID EXECUTE proc_tb_news_delete @newsID=@newsID --執行存儲過程 END END CLOSE MY_CURSOR DEALLOCATE MY_CURSOR COMMIT TRANSACTION END TRY BEGIN CATCH ROLLBACK TRANSACTION SET @record=-1 --失敗 END CATCH RETURN @record END

關鍵詞標簽: 存儲過程 返回值

聲明: 本文由我的SEOUC技術文章主頁發布于:2023-05-23 ,文章sqlserver 存儲過程帶事務 拼接id 返回值建站知識主要講述存儲過程,返回值,sqlserver 存儲過程帶事務 拼接網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_5930.html

我的IDC 網站建設技術SEOUC.COM
專注網站建設,SEO優化,小程序設計制作搭建開發定制網站等,數千家網站定制開發案例,網站推廣技術服務。
  • 5000+合作客服
  • 8年從業經驗
  • 150+覆蓋行業
  • 最新熱門源碼技術文章

    主站蜘蛛池模板: 平南县| 南江县| 双辽市| 大同县| 靖州| 深泽县| 乌兰察布市| 新津县| 泗洪县| 盐城市| 木里| 新野县| 沧州市| 仪陇县| 武清区| 京山县| 长治市| 昌乐县| 兴海县| 龙口市| 武鸣县| 丘北县| 根河市| 永新县| 宾阳县| 梓潼县| 弥渡县| 维西| 木里| 南木林县| 巴马| 武宣县| 营山县| 嵊泗县| 青阳县| 昌黎县| 新化县| 河北区| 陆河县| 甘孜| 郸城县|