背景
因爲WTF的原因.經常有人讓執行各種亂七八槽的刪除語句
因爲產品支持了10多種數據庫.
這個工作量非常複雜.
爲了簡單起見,想着能夠批量執行部分SQL.
其他的都處理過了,但是SQLSERVER的有點問題
所以今天有點時間.想着將SQLSERVER的一起也處理掉.
方式
建議使用 sqlcmd命令的方式進行處理
通過sqlcmd 執行腳本 加參數的方式實現 數據庫記錄的自動刪除.
注意這裏模仿了一個瀚高高手的玩法
也借鑑了 51cto 裏面 安裝數據庫的方式方法
第一步安裝sqlcmd
yum 源設置
如果是linux7則使用如下
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repo
如果是linux8則使用如下
curl https://packages.microsoft.com/config/rhel/8/prod.repo > /etc/yum.repos.d/msprod.repo
第二步 yum makecache
第三步 yum install mssql-tools-14.0.2.0-1 -y
注意要多次輸入 YES 同意試用協議纔可以.
注意不能使用 17的版本. 會提示無法連接, 比較難搞
第二步腳本執行SQL
需要注意. 微軟的安裝完之後默認將二進制放到了
/opt/mssql-tools/bin/
注意 我的這個版本就是
sqlcmd-13.0.1.0
可以編寫一套腳本
注意 密碼帶特殊字符必須用單引號括起來.
/opt/mssql-tools/bin/sqlcmd-13.0.1.0 -S 10.110.xxx.xx -d xxxxMSS -U xxxxMSS -P 'Tstxxxx!!!!' <<EOF
delete from sometable where patchcode='$1'
GO
EOF
shell處理
保存爲 /deploy/deletemss
需要處理是爲
/deploy/deletemss something 就可以了
只需要輸入編號就可以執行刪除操作.