Um script que escrevi há alguns anos pode substituir automaticamente os dados de todo o banco de dados.
No início, escrevi apenas por diversão, mas não esperava que as pessoas continuassem perguntando sobre isso depois de escrevê-lo, então reescrevi o código e melhorei-o. Ele suportava substituição regular, evitando binários (objetos antigos) que poderiam causar. erros e criou um programa EXE. Obrigado pela ajuda virtual.
Código asp anexado:
Copie o código da seguinte maneira:<%
'###################################
'Batch replace database content 2008 -3-17
'A substituição é irreversível, então faça um backup antes da operação
'################################## #
Escurecer Db,conn,Rs1,Rs2,Str1,Str2,I,Re
str1=admi[0-z] 'String a ser substituído, suporta
str2=1234 regular'String a ser substituído
Db=db.mdb 'Endereço do banco de dados
' Não há necessidade para alterar o seguinte
'Criar objeto regular
Set Re=new RegExp
Re.IgnoreCase =True
Re.Global=True
Set Conn=Server.CreateObject(ADODB.Connection)
Conn.Open Provider=Microsoft.Jet.OLEDB.4.0;Data Source=&server.mappath(Db)
Definir Rs1 = Conn.OpenSchema(20)
Do While Not Rs1.Eof
If UCase( Rs1(TABLE_TYPE))=TABLE Then 'Se for uma tabela de usuário, execute a
operaçãoSet Rs2=Server.Createobject(adodb.recordset)
Rs2.Open select * from [&Rs1(TABLE_NAME)],conn,1,3
Do While Not Rs2.Eof
For I=0 to Rs2.fields.count-1 'Percorrer todos os campos
Se Rs2(i).Properties(ISAUTOINCREMENT) = False E Rs2(i).Type<>128 E Rs2(i).Type<>204 And Rs2(i).Type<>205 Then 'Se não for um número automático e não for um objeto ole
Rs2(Rs2(i).name)=Myreplace(Rs2(i .value&)
End If
Next
Rs2.Movenext
Loop
Rs2.Close
Set Rs2=nada
End If
Rs1.MoveNext
Loop
Rs1.Close
Set Rs1=Nothing
Conn.close
Set Conn=Nada
definido Re=Nothing
Response.Write Substituição
concluída'Função de substituição personalizada
Função myreplace(byval Tstr)
If Tstr= Ou isnull(Tstr) Then
Exit Function
Else
Re.Pattern=Str1
myReplace =Re.Replace(Tstr,Str2)
End If
End Function
% >