亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

sqlserver 存儲過程帶事務 拼接id 返回值

2024-08-31 00:57:08
字體:
來源:轉載
供稿:網友
刪除一條留言信息會級聯刪除回復信息,這時我們需要用到事務,如下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].[proc_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


當刪除多條新聞類型時,我們需要把拼接好的類型id,例如:1,2,4,5,12,34,穿入存儲過程,分割字符的SQL語句如下所示:

復制代碼 代碼如下:


DECLARE @A VARCHAR(5000)
DECLARE @i INT
SET @A='A,B,C,D,D,S,X,C,C,C,D,AAAA,DDDDDD,DEF,ERT,'
SET @i=CHARINDEX(',',@A)
WHILE @i>=1
BEGIN
PRINT LEFT(@A,@i-1)
SET @A=SUBSTRING(@A,@i+1,LEN(@A)-1)
SET @i=CHARINDEX(',',@A)
END


刪除多條新聞類型SQL如下:

復制代碼 代碼如下:


ALTER PROCEDURE [dbo].[proc_tb_news_type_selects_delete]
(
@typeID_list VARCHAR(500),
@record TINYINT OUTPUT
)
AS
BEGIN
BEGIN TRY
BEGIN TRANSACTION
DECLARE @index INT
DECLARE @typeID INT
SET @typeID_list=RTRIM(LTRIM(@typeID_list))
SET @index=CHARINDEX(',',@typeID_list)
WHILE @index>=1
BEGIN
SET @typeID=CAST(LEFT(@typeID_list,@index-1) AS INT)
EXECUTE proc_tb_news_type_delete @typeID=@typeID
SET @typeID_list=SUBSTRING(@typeID_list,@index+1,LEN(@typeID_list)-1)
SET @index=CHARINDEX(',',@typeID_list)
END
COMMIT TRANSACTION
SET @record=0 --成功
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
SET @record=-1 --失敗
END CATCH
RETURN @record
END


作者:cnblogs xu_happy_you
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
综合136福利视频在线| xvideos成人免费中文版| 色伦专区97中文字幕| 青草青草久热精品视频在线网站| 97视频免费在线看| 97视频在线观看免费| 日韩欧美亚洲综合| 亚洲第一网站男人都懂| 亚洲成人激情视频| 亚洲激情电影中文字幕| 欧美日韩国产精品一区二区不卡中文| 亚洲高清在线观看| 亚洲国产高清自拍| 欧美国产日韩免费| 久久久亚洲天堂| 国产日韩欧美在线播放| 国产中文欧美精品| 日韩免费观看网站| 2019中文字幕免费视频| 色哟哟亚洲精品一区二区| 欧美丝袜一区二区| 亚洲第一免费网站| 欧洲s码亚洲m码精品一区| 亚洲精品免费av| 国产精品美女呻吟| 91精品国产高清自在线看超| 久久久国产在线视频| 亚洲视频在线观看免费| 热久久这里只有| 欧美最顶级丰满的aⅴ艳星| 国产精品va在线| 亚洲一区二区日本| 亚洲女人被黑人巨大进入| 国产成人一区二区三区| 欧美日韩国产中文精品字幕自在自线| 成人性生交大片免费观看嘿嘿视频| 欧美日在线观看| 国产a级全部精品| 亚洲最大av在线| 国产精品成人观看视频国产奇米| 国内精品久久久久久影视8| 免费97视频在线精品国自产拍| 精品高清美女精品国产区| 91麻豆桃色免费看| 日韩在线免费av| 亚洲综合中文字幕68页| 日韩中文字幕亚洲| 久久久久久久久爱| 精品美女永久免费视频| 欧美老女人bb| xvideos亚洲人网站| 91精品国产色综合久久不卡98口| 欧美精品久久久久久久| 国产国语刺激对白av不卡| 91视频国产精品| 成人深夜直播免费观看| 国产亚洲欧洲高清一区| 91九色精品视频| 欧美最猛性xxxx| 亚洲尤物视频网| 亚州av一区二区| 欧美精品日韩三级| 亚洲韩国欧洲国产日产av| 日韩69视频在线观看| 欧美成人精品一区二区| 亚洲一区二区三区乱码aⅴ| 国产成人精品久久亚洲高清不卡| 欧美性猛交xxxx免费看久久久| 国产一区视频在线播放| 日韩av色综合| 青草青草久热精品视频在线网站| 狠狠色狠狠色综合日日小说| 欧美国产视频一区二区| 欧美在线一区二区视频| 欧美激情高清视频| 亚洲a级在线播放观看| 日韩视频―中文字幕| 欧美高清自拍一区| 亚洲欧洲偷拍精品| 国内精品久久久久久| 精品国产一区二区三区四区在线观看| 伦伦影院午夜日韩欧美限制| 国产精品免费在线免费| 欧美视频在线观看免费网址| 久久精品国产电影| 欧美激情xxxxx| 欧美高清无遮挡| 欧美日韩中文字幕在线| 亚洲欧美成人一区二区在线电影| 国产精品久久久久久久久男| 国产精品日韩在线一区| 亚洲综合一区二区不卡| 国产精品久久久精品| 91精品视频在线看| 国产精品久久久久久久美男| 欧美视频一区二区三区…| 日韩亚洲成人av在线| 日韩av电影在线播放| 久久91亚洲精品中文字幕| 九九热这里只有在线精品视| 日韩av资源在线播放| 91高潮精品免费porn| 亚洲午夜国产成人av电影男同| 欧美一级电影久久| 海角国产乱辈乱精品视频| 久久久久久久久综合| 成人黄色短视频在线观看| 久久精品欧美视频| 国色天香2019中文字幕在线观看| 亚洲欧美日韩第一区| 日韩精品视频三区| 精品国产欧美成人夜夜嗨| 日韩成人久久久| 国产精品久久久久91| 97国产suv精品一区二区62| 国产一区私人高清影院| 国产aaa精品| 国产噜噜噜噜久久久久久久久| 欧美插天视频在线播放| 日韩精品在线观看一区| 国产精品视频一区二区三区四| 亚洲天堂av在线免费观看| 不卡在线观看电视剧完整版| 国产精品久久久久国产a级| 久久手机免费视频| 久久久午夜视频| 国产成人福利夜色影视| 91黑丝在线观看| 国产精品丝袜白浆摸在线| 亚洲欧美国产另类| 亚洲国产成人一区| 91系列在线观看| 欧美激情在线一区| 日韩中文字幕久久| 国产精品自拍网| 国产成人在线视频| 国产精品91久久久| 亚洲精品国产综合区久久久久久久| 欧美精品精品精品精品免费| 青青草原一区二区| 日韩www在线| 国语对白做受69| 日韩亚洲第一页| 欧美裸体xxxx极品少妇软件| 久久亚洲欧美日韩精品专区| 国产这里只有精品| 国产精品天天狠天天看| 欧美视频中文字幕在线| 国产亚洲欧美aaaa| 欧美日韩在线视频首页| 久久99久久99精品中文字幕| 中文字幕亚洲综合久久筱田步美| 欧美激情视频一区二区三区不卡| 国产欧美精品xxxx另类| 国产精品香蕉国产| 久久99青青精品免费观看| 国产成人极品视频| 国产成人亚洲综合青青| 久久综合免费视频影院| 国产精品欧美一区二区三区奶水| 国产精品久久久久久久7电影| 欧美成人精品三级在线观看| 久久成人精品视频| 91久久久久久久久久久久久|