Inquiridor
UPDATE Urgente

Pergunta
-
Boa tarde,
Gostaria de uma ajuda.
Primeiro vou dizer o problema e posteriormente solicito a ajuda.
Em várias tabelas do Meu SQL Server 2000, tabelas aleatórias foram incluídas no final do texto uma URL(foi causado por vírus ou pessos mal intessionadas, ainda estamos em análise).
Dessa forma queria fazer um UPDATE nessas tabelas excluíndo esse texto específico.Agurado respostas,
Se tiverem alguma dúvidas podem perguntar.Obrigado,
Edivar Barbosa
Todas as Respostas
-
-
-
Oi Edivar,
Como trata-se de uma situação urgente não me preocupei com um script mais elaborado. O script abaixo irá gerar as instruções de UPDATE para desfazer o mal feito.
Code SnippetDECLARE
@texto VARCHAR(100)SET
@texto = 'Texto a ser eliminado'SELECT
'UPDATE ['
'SET ['
+ COLUMN_NAME + '] = ' +'REPLACE(['
+ COLUMN_NAME + '],' + '''' + @texto + '''' + ',' + '''' + '''' + ')'FROM
INFORMATION_SCHEMA.COLUMNSWHERE
DATA_TYPE IN ('nvarchar','varchar','text','ntext','char','nchar')[ ]s,
Gustavo
-
-
-
-
Ok Edivar,
Que bom que a mesma lhe ajudou
Infelizmente o UPDATE em colunas TEXT é muito complicado. Se você estiver usando o SQL Server 2005 recomendo alterar esse tipo para VARCHAR(MAX) ou NVARCHAR(MAX).
Se puder classificar a resposta
[ ]s,
Gustavo
-
Edivar,
Veja se este exemplo ajuda:
Code SnippetSet
NoCount OnDeclare
@Tabelas Table (Idx Int Identity(1,1), TblName Varchar(100))Insert
into @Tabelas (TblName)Select
Table_Name From Information_Schema.Tables Where Table_Type = 'Base Table'Declare
@Start IntDeclare
@End IntDeclare
@Command Varchar(1000)Select
@Start = 1, @end = Max(Idx) From @TabelasWhile
@Start <= @EndBegin
Select @Command = 'update '+ TblName From @Tabelas Where Idx = @Start Select @Command=@Command+' Set Coluna= ''aaa'''Exec(@Command)
Set @Start = @Start + 1End
-
É pessoal, quando se trata de colunas do tipo ('nvarchar','varchar','char','nchar') tudo bem, mas realmente quando temos colunas ('text','ntext') não dá certo o camando de REPLACE abaixo:
UPDATE [banco].[owner].[tabela] SET [coluna] = REPLACE([coluna],'Texto a ser eliminado','')
Tem como fazer o REPLACE em compos text e ntex ???
Obrigado,