declare @t varchar(255),@c varchar(255) --宣告兩個變數
declare table_cursor cursor for --宣告游標
select a.name,b.name
from sysobjects a,syscolumns b --系統物件表與字段表
where a.id=b.id and a.xtype='u' and (b.xtype=99 or b.xtype=35 or b.xtype=231 or b.xtype=167) --99 text型 35 ntext --231 nvarchar --167 varchar
open table_cursor fetch next --開啟游標
from table_cursor into @t,@c while(@@fetch_status=0)
begin
exec('update ['+@t+'] set ['+@c+']=rtrim(convert(varchar(4000),['+@c+']))+''''') --這裡是更新語句
fetch next from table_cursor into @t,@c end --獲取一下記錄
close table_cursor --關閉游標
deallocate table_cursor --釋放游標
sql注入處理(2) 收藏
declare @delstr varchar(8000)
set @delstr=''
set @delstr=''
set @delstr=''
set @delstr=''
set @delstr=''
set @delstr=''
set @delstr=''
set @delstr=''
set @delstr=''
set nocount on
declare @tablename nvarchar(100),@columnname nvarchar(100),@tbid int,@irow int,@iresult int
declare @sql nvarchar(500)
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 cur1 cursor for
--xtype in (231,167,239,175,99,35) 為char,varchar,nchar,nvarchar,ntext,text型別
select name from syscolumns where xtype in (231,167,239,175,99,35) and id=@tbid
open cur1
fetch next from cur1 into @columnname
while @@fetch_status=0
begin
set @sql='update [' + @tablename + '] set ['+ @columnname +']= replace(cast(['+@columnname+'] as varchar(8000)),'''+@delstr+''','''') where ['+@columnname+'] like ''%'+@delstr+'%'''
--update tablename set fielda=replace(cast(fielda as varchar(8000)) ,'aa','bb')這樣的語句。
exec sp_executesql @sql
set @irow=@@rowcount
set @iresult=@iresult+@irow
if @irow>0
begin
print '表:'+@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
更新的深入內容
有三個操作可改變表的狀態 插入乙個新行 刪除乙個現有的行 更新乙個現有的行 對於其中的每乙個關鍵操作,資料介面卡都會定義乙個作為屬性公開的自定義的命令物件。這樣的屬性包括insertcommand deletecommand和updatecommand。程式設計師負責為這些屬性分配有意義的命令物件,...
SQL注入的內容和預防
sql注入 sqli 是一種注入攻擊,可以執行惡意sql語句。它通過將任意sql 插入資料庫查詢,使攻擊者能夠完全控制web應用程式後面的資料庫伺服器。攻擊者可以使用sql注入漏洞繞過應用程式安全措施 可以繞過網頁或web應用程式的身份驗證和授權,並檢索整個sql資料庫的內容 還可以使用sql注入來...
SQL注入批量更新語句
sql 2000解決方法 declare fieldtype sysname set fieldtype varchar 刪除處理 declare hcforeach cursor global forselect n update quotename o.name n set quotename ...