Atualizar direto
22/12/2006
0
Estou com um grande, gigantesco problema. Nó stemos um sistema aqui que apresenta em torno de 1230 tabelas, e destas umas 1200 tem um campo chamado EMPRESA onde ele grava o ID da empresa que está sendo utilizado.
O que eu gostaria era de, como fazer via sql, trigger ou Store uma maneira de ele atualizar os dados deste campo, ou seja, atualmente este campo esta sendo alimentado como 1, e agora ele quer passar para a segunda empresa que é a de código 2.
Como eu faço isto? Atualizo estes dados destas tabela sem precisar criar uma sentença SQL de update para cada tabela? Imagina eu criar um [b:81935aa0cf]update TABELA set EMPRESA = 2 where EMPRESA = 1[/b:81935aa0cf] para todas as 1200 tabelas. Vai demorar d+.
Aguardo alguma sugestão.
Atenciosamente
Edmarcarvalhaes
Curtir tópico
+ 0Posts
23/12/2006
Psergio.p
Gostei + 0
23/12/2006
Edmarcarvalhaes
Não.. para estes campo não existe dados relacionados. O que eu relaciono são os campos de ID de cada tabela. Por isto eu deseja alterar este código para todas as tabelas automaticamente.
Aguardo uma sugetão.
Gostei + 0
26/12/2006
Edmarcarvalhaes
Kd a minha resposta. Será que alguém pode me ajudar no item acima?
Gostei + 0
26/12/2006
Psergio.p
Me dá um feedback depois!
Segue o código:
DECLARE @strSQL NVARCHAR(200)
DECLARE @TableName NVARCHAR(200)
DECLARE CURATU CURSOR FOR
SELECT sysobjects.name FROM syscolumns INNER JOIN
sysobjects ON sysobjects.ID = syscolumns.ID WHERE
sysobjects.xtype = ´U´ AND syscolumns.name = ´<SUA COLUNA AQUI>´
OPEN CURATU
FETCH NEXT FROM CURATU INTO @TableName
WHILE @@FETCH_STATUS = 0
BEGIN
SET @strSQL = ´UPDATE ´ + @TableName + ´ SET <SUA COLUA AQUI> = 10´
EXEC(@strSQL)
FETCH NEXT FROM CURATU INTO @TableName
END
CLOSE CURATU
DEALLOCATE CURATU
Gostei + 0
26/12/2006
Psergio.p
DECLARE @strSQL NVARCHAR(200)
DECLARE @TableName NVARCHAR(200)
DECLARE CURATU CURSOR FOR
SELECT sysobjects.name FROM syscolumns INNER JOIN
sysobjects ON sysobjects.ID = syscolumns.ID WHERE
sysobjects.xtype = ´U´ AND syscolumns.name = ´<SUA COLUNA AQUI>´
OPEN CURATU
FETCH NEXT FROM CURATU INTO @TableName
WHILE @@FETCH_STATUS = 0
BEGIN
SET @strSQL = ´UPDATE ´ + @TableName + ´ SET <SUA COLUA AQUI> = <SEU VALOR AQUI>´
EXEC(@strSQL)
FETCH NEXT FROM CURATU INTO @TableName
END
CLOSE CURATU
DEALLOCATE CURATU
Gostei + 0
26/12/2006
Edmarcarvalhaes
Obrigado
Gostei + 0
27/12/2006
Edmarcarvalhaes
Eu posso colocar este código dentro do QUERY ANALIZER e executar o comando?
OU devo fazer como uma trigger e atualizar uma tabela para ele atualizar tudo?
Gostei + 0
27/12/2006
Psergio.p
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)