Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luiz Gustavo Padrão França

Consulta a tabelas que contenham o campo filial = 02

Recommended Posts

Pessoal, saudações.

 

É meu primeiro post neste fórum, então vou tentar explicar direito o que preciso.

 

VEJAM A QUERY ABAIXO

 

SELECT DISTINCT LEFT(obj.name,3) TABELA,col.name CAMPO FROM sysobjects obj , syscolumns col

WHERE obj.xtype = 'U'

and obj.id = col.id

AND col.name NOT IN ('D_E_L_E_T_','R_E_C_N_O_','R_E_C_D_E_L_')

and (

Rtrim(Ltrim(substring(col.name,5,Len(col.name)))) = 'FILIAL'

OR

Rtrim(Ltrim(substring(col.name,4,Len(col.name)))) = 'FILIAL')

 

ORDER BY TABELA

Essa query acima, me retorna todas as tabelas que contém o campo FILIAL. Mas preciso ir um pouco além.

 

Preciso que ela me retorne todas as tabelas que tenham o campo FILIAL tenha o conteúdo IGUAL a 02.

 

É que trabalhamos aqui com o Microsiga, e esse ERP permite trabalhar com mais de uma filial no mesmo banco (TABELA), só que essa filial 02 não existe mais, então preciso retira-la do banco, ou seja, deletar todos os registros que sejam da filial 02.

 

Acontece que o sistema tem mais de 1000 tabelas...daí imagine o trabalhão em ter que acessar uma a uma para fazer isso.

 

Ajudem por favor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gustavo,

 

eu fiz algo parecido em um sistema de DW:

 

DECLARE @column		sysname
SET @column = 'CAMPO'

SELECT a.name AS COLUNA, b.name AS TABELA
into #temp
FROM dbo.syscolumns a JOIN dbo.sysobjects b ON a.id = b.id
WHERE a.name LIKE @column
AND b.xtype = 'U'
ORDER BY tabela

select * from #temp

drop table #temp

Retorna todas as tabelas que tem a palavra campo como nome de campo.

 

joguei isso em uma temporaria e criei um cursor para ler esta temporaria e deixar somente as tabelas que possuem o where que eu precisava, no seu caso, filial = 2

 

Acho que eh bem por ai.

 

abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.