/***********定義要去除的字元,請注意,肯定不止一條,我的伺服器就查到許多不同的**************/
declare @delstr nvarchar(500)
set @delstr='' --這裡被注入的字段串
/****************************************/
/**********以下為操作實體************/
set nocount on
declare @tablename nvarchar(100),@columnname nvarchar(100),@tbid int,@irow int,@iresult int
declare @sql nvarchar(2000)
set @iresult=0
declare cur cursor for
select name,id from sysobjects where xtype='u'
open cur
fetch
next from cur into @tablename,@tbid
while @@fetch_status=0
begin
declare cur1cursor for
select name from syscolumns where xtype in (231,167,239,175, 35, 99) and id=@tbid
open cur1
fetch next from cur1 into @columnname
while @@fetch_status=0
begin
set @sql='update [' + @tablename +'] set ['+ @columnname +']= substring([' + @columnname + '],' + '1, patindex( ''%' + @delstr +'%'', [' + @columnname + '])-1) + ' + 'substring([' + @columnname + '], patindex( ''%' + @delstr + '%'', [' + @columnname + ']) + ' +'len(''' + @delstr + ''') , datalength([' + @columnname + '])) where ['+@columnname+'] like ''%'+@delstr+'%'''
exec sp_executesql @sql
set @irow=@@rowcount
set @iresult=@iresult+@irow
if @irow>0
begin
'表:'+@tablename+',列:'+@columnname+'被更新'+convert(varchar(10),@irow)+'條記錄;'
end
fetch next from cur1 into @columnname
endclose cur1
deallocate cur1
fetch next from cur into @tablename,@tbid
endprint
'資料庫共有'+convert(varchar(10),@iresult)+'條記錄被更新!!!'
close cur
deallocate cur
set nocount off
記錄一下,有需要的朋友拿去試試
資料庫亂碼解決方案
oracle 資料庫亂碼解決方案 你插入資料的時候,用 轉變字串的亂碼函式 param str return public string getstr string str catch exception e 向bean裡面賦值 public void setaction string action...
資料庫死鎖解決方案
一 活鎖 如果事務t1封鎖了資料r,事務t2又請求封鎖r,於是t2等待。t3也請求封鎖r,當t1釋放了r上的封鎖之後系統首先批准了t3的請求,t2仍然等待。然後t4又請求封鎖r,當t3釋放了r上的封鎖之後系統又批准了t4的請求,t2有可能永遠等待,這就是活鎖的情形。避免活鎖的簡單方法是採用先來先服務...
資料庫亂碼解決方案
mysql會出現中文亂碼的原因不外乎下列幾點 1.server本身設定問題,例如還停留在latin1 2.table的語系設定問題 包含character與collation 3.客戶端程式 例如php 的連線語系設定問題 強烈建議使用utf8 utf8可以相容世界上所有字元 一 避免建立資料庫及表...