好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁(yè) > 知識(shí)庫(kù) > sql server編寫archive通用模板腳本實(shí)現(xiàn)自動(dòng)分批刪除數(shù)據(jù)

sql server編寫archive通用模板腳本實(shí)現(xiàn)自動(dòng)分批刪除數(shù)據(jù)

熱門標(biāo)簽:武漢長(zhǎng)沙外呼系統(tǒng)方法和技巧 怎樣在地圖上標(biāo)注路線圖標(biāo) 千呼電銷機(jī)器人價(jià)格 優(yōu)質(zhì)地圖標(biāo)注 外呼系統(tǒng)電銷專用 京華物流公司地圖標(biāo)注 智能語(yǔ)音外呼系統(tǒng)選哪家 百度地圖標(biāo)注不同路線 奧威地圖標(biāo)注多個(gè)地方

博主做過(guò)比較多項(xiàng)目的archive腳本編寫,對(duì)于這種刪除數(shù)據(jù)的腳本開(kāi)發(fā),肯定是一開(kāi)始的話用最簡(jiǎn)單的一個(gè)delete語(yǔ)句,然后由于部分表數(shù)據(jù)量比較大啊,索引比較多啊,會(huì)發(fā)現(xiàn)刪除數(shù)據(jù)很慢而且影響系統(tǒng)的正常使用。然后就對(duì)delete語(yǔ)句進(jìn)行按均勻數(shù)據(jù)量分批delete的改寫,這樣的話,原來(lái)的刪除一個(gè)表用一個(gè)語(yǔ)句,就可能變成幾十行,如果archive的表有十幾個(gè)甚至幾十個(gè),那我們的腳本篇幅就非常大了,增加了開(kāi)發(fā)和維護(hù)的成本,不利于經(jīng)驗(yàn)比較少的新入職同事去開(kāi)發(fā)archive腳本,也容易把注意力分散到所謂分批邏輯中。

  根據(jù)這種情況,本周博主(zhang502219048)剛好在工作過(guò)程中,總結(jié)并編寫了一個(gè)自動(dòng)分批刪除數(shù)據(jù)的模板,模板固定不變,只需要把注意力集中放在delete語(yǔ)句中,并且可以在delete語(yǔ)句中控制每批刪除的數(shù)據(jù)量,比較方便,通過(guò)變量組裝模板sql,避免每個(gè)表就單獨(dú)寫一個(gè)分批邏輯的重復(fù)代碼,化簡(jiǎn)為繁,增加分批刪除一個(gè)表指定數(shù)據(jù)的話只需要增加幾行代碼就可以(如下所示中的demo1和demo2)。

  demo1:不帶參數(shù),根據(jù)表tmp_Del刪除表A對(duì)應(yīng)ID的數(shù)據(jù)。

  demo2:帶參數(shù),根據(jù)Date字段是否過(guò)期刪除表B對(duì)應(yīng)數(shù)據(jù)。

  具體請(qǐng)參考下面的腳本和相關(guān)說(shuō)明,如有不懂的地方歡迎評(píng)論或私信咨詢博主。

-- ===== 1 分批archive模板 =======================================================
--【請(qǐng)不要修改本模板內(nèi)容】
/* 
說(shuō)明:
1. 組裝的archive語(yǔ)句為:@sql = @sql_Part1 + @sql_Del + @sql_Part2
2. 組裝的參數(shù)@parameters為:@parameters = @parameters_Base + 自定義參數(shù)
3. 傳入?yún)?shù):@strStepInfo 需要print的step信息
4. archive邏輯專注于@sql_Del,而非分散于分批。
*/
declare @parameters nvarchar(max) = ''
, @parameters_Base nvarchar(max) = N'@strStepInfo nvarchar(100)'
, @sql nvarchar(max) = ''
, @sql_Part1 nvarchar(max) = N'
declare @iBatch int = 1,   --批次
    @iRowCount int = -1 --刪除行數(shù),初始為-1,后面取每批刪除行數(shù)@@ROWCOUNT
print convert(varchar(50), getdate(), 121) + @strStepInfo
while @iRowCount > 0
begin
  print ''begin batch:''
  print @iBatch
  print convert(varchar(50), getdate(), 121)
  begin try
    begin tran
'
, @sql_Del nvarchar(max) = '
' --@sql_Del腳本需要根據(jù)實(shí)際情況在后續(xù)腳本中自行編寫
, @sql_Part2 nvarchar(max) = N'  
      select @iRowCount = @@rowcount
    commit tran 
  end try
  begin catch
    rollback tran
    print ''-- Error Message:'' + convert(varchar, error_line()) + '' | '' + error_message()
  end catch
  waitfor delay ''0:00:01'' --延時(shí)
  print convert(varchar(50), getdate(), 121)
  print ''end batch''
  select @iBatch = @iBatch + 1
end'
-- ===== 2 demo1(delete語(yǔ)句不含參數(shù)):archive 表A =======================================================
select @parameters = @parameters_Base + '' --如果有需要增加自定義參數(shù),在這里加,例如@parameters = @parameters_Base + ', @ArchiveDate datetime'
, @sql_Del = '
      delete top (50000) tc_Del 
      from 表A tc_Del
      inner join tmp_Del cd on cd.ID = tc_Del.ID
'
select @sql = @sql_Part1 + @sql_Del + @sql_Part2
print @sql
exec sp_executesql @sql, @parameters, N' 2 archive 表A'
-- ===== 3 demo2(delete語(yǔ)句含參數(shù)):archive 表B =======================================================
select @parameters = @parameters_Base + ', @ArchiveDaate datetime' --如果有需要增加自定義參數(shù),在這里加,例如@parameters = @parameters_Base + ', @ArchiveDate datetime'
, @sql_Del = '
      delete top (50000) 
      from 表B
      where Date  @ArchiveDate
'
select @sql = @sql_Part1 + @sql_Del + @sql_Part2
print @sql
exec sp_executesql @sql, @parameters, N' 3 archive 表B', @ArchiveDate

總結(jié)

以上所述是小編給大家介紹的sql server編寫archive通用模板腳本實(shí)現(xiàn)自動(dòng)分批刪除數(shù)據(jù),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!

您可能感興趣的文章:
  • python處理數(shù)據(jù),存進(jìn)hive表的方法
  • python導(dǎo)出hive數(shù)據(jù)表的schema實(shí)例代碼
  • php ZipArchive實(shí)現(xiàn)多文件打包下載實(shí)例
  • mysql 5.7.18 Archive壓縮版安裝教程
  • mysql 5.7 zip archive版本安裝教程
  • 使用shell腳本執(zhí)行hive、sqoop命令的方法
  • shell中循環(huán)調(diào)用hive sql 腳本的方法
  • hive-shell批量命令執(zhí)行腳本的實(shí)現(xiàn)方法
  • 如何在python中寫hive腳本

標(biāo)簽:威海 益陽(yáng) 七臺(tái)河 防疫戰(zhàn)設(shè) 宿州 銅仁 來(lái)賓 天水

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《sql server編寫archive通用模板腳本實(shí)現(xiàn)自動(dòng)分批刪除數(shù)據(jù)》,本文關(guān)鍵詞  sql,server,編寫,archive,通用,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《sql server編寫archive通用模板腳本實(shí)現(xiàn)自動(dòng)分批刪除數(shù)據(jù)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于sql server編寫archive通用模板腳本實(shí)現(xiàn)自動(dòng)分批刪除數(shù)據(jù)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 善良的小姨子| 上原miku大肚子怀孕在线观看下载| 主人让我真空露出调教视频| 男生互摸jj| 欧美精品aV一区二区三区蜜月视频| 把女人弄爽A片一区免费| 福利姬麻酥酥| 美女的隐私视频网站视频| 精品无码αv一区二区三区不卡| 娇妻逃课屁股挨打了小说| 玩四十妇女水多| 91国偷自产一区二区三区| 一区二区在线视频无码自拍 | 边吃奶边做爽的gif动态图| juliaannxxxx| 久久碰国产一区二区三区| www.5g天天看| 秋霞电影+c伦理电影| 欲望的姐姐们| 美女如云坐厕丝袜偷拍| 高校教师悲しみの素颜在线观看| 国产成人欧美综合在线影院| 丈夫面前被耍| 乖乖趴下张开腿调教打屁股| 国产男男Gay??体育生戴套| 乖女的丰满奶水h| 久艹视频在线| 欧美一级特黄大片试看120秒| 我和子初试云雨第10章| 欧美日本一区视频免费| 欺诈都市电影| 性生活3电影| 女人把秘?扒开给男人爽韩国| 女仆洗澡被主人玩| 欧美videos欧美同志| 上原亚衣三泬绝顶中出云播| 男总裁被保镖c呻吟双腿大张bl| 特级**毛片| 黄色片百度网盘| 久久se精品一区精品二区| 国内精品久久久久精品综合紧润丹 |