TRIGGER após criar tabela

SQL Server

22/04/2005

Ola caros Colegas....

Alguém poderia me dizer ou se já tiver q possa me passar .

Tenho um tabela onde quero cruiar uma TRIGGER, para q essa
TRIGGER. Toda vez q for criada uma tabela nova no Database,
automaticamente o nome a mesma tabela seja inclusa dentro
da q possui a TRIGGER.

Obrigado.


Eduardo.padilha

Eduardo.padilha

Curtidas 0

Respostas

Mysys

Mysys

22/04/2005

ao uma nova tabela no database a tabela anterior onde voce quer colocar a trigger nao sofre auteração portanto nao ira disparar a trigger.

isso seria quase que uma trigger no database


GOSTEI 0
Eduardo.padilha

Eduardo.padilha

22/04/2005

Tudo bem .... Que seja uma TRIGGER direto no database
mas como fazer ? Vc tem algo parecido ?


GOSTEI 0
Mysys

Mysys

22/04/2005

tem nao..


GOSTEI 0
Eduardo.padilha

Eduardo.padilha

22/04/2005

Entao voltei a estaca zero ....

Ola caros Colegas....

Alguém poderia me dizer ou se já tiver q possa me passar .

Tenho um tabela onde quero cruiar uma TRIGGER, para q essa
TRIGGER. Toda vez q for criada uma tabela nova no Database,
automaticamente o nome a mesma tabela seja inclusa dentro
da q possui a TRIGGER.

Obrigado.


GOSTEI 0
Marcus.magalhaes

Marcus.magalhaes

22/04/2005

Boa noite.

Sua pergunta está um pouco confusa (ou eu já estou com sono...hehehe). Mas vamos lá, vc tem uma tabela que armazena os nomes das tabelas que vc tem no seu banco, e vc gostaria de ter esta tabela sempre atualizada. É isso?

Se for isso vc está reinventando a roda, pq a tabela sysobjects contém todos os objetos que estão na base, portanto se vc quer saber quais são as tabelas que foram criadas na base por vc, ou por quem quer q seja, vc pode fazer o seguinte comando :

[color=green:350df39aa1]Select name, crdate
From dbname..sysobjects
Where type = ´U´[/color:350df39aa1] -- U= user table, se vc quiser ver as tbls de sistema acrescente ou troque para ´S´ -- S = system


Espero ter ajudado. Caso não seja tente ser mais claro na sua explicação.

Att,


GOSTEI 0
Eduardo.padilha

Eduardo.padilha

22/04/2005

Bom Dia....

Marcus eh extamente o q vc entendeu, eu se q já existe a roda ahahahah
Select name, crdate From dbname..sysobjects Where type = ´U´ .......

Porem deixar eu explicar para qual a finalidade.....

Eh o seguinte minha tabela x onde guarda o nome de todas as outras do banco tem uma coluna q se chama tabela_em_uso onde eh 1 ou 0 , quando eh = 1, eh pq essa tabela nao esta em uso else 0.

Entao como o banco esta sendo reestruturado, estavamos fazendo uma varedura das tabelas q possivelmente nao estao em uso, para isso checamos a tabela x.tabela_em_uso.

Mas imagina q nesse periodo alguem crie uma nova tabela, entao gostaria de armazenar o nome e jogar 0 no campo tabela_em_uso.

Ou seja a finalidade dessa tabela x seria somente para definir as tabelas em uso ou nao.

E pq estamos fazendo isso ? Pq tem mais de 100 tabelas q nao estao mais sendo usadas, entao essa tabela x seria uma referencia.

Por isso pergunto ah um meio armazenar o nome de cada tabela nova na tabela x ?


GOSTEI 0
Marcus.magalhaes

Marcus.magalhaes

22/04/2005

Olá,

vc pode fazer o seguinte, crie um job que faça o seguinte insert na sua tabela

Insert Into suatabela
Select name, xxxxxxx
From sysobjects
Where name not in (Select distinct name from sua tabela)
and type = ´U´


Assim vc pega somente tabelas e somente as que ainda não estão na sua tabela.

Vc pode agendar o job para rodar diariamente.

Espero ter ajudado.

Att,


GOSTEI 0
Eduardo.padilha

Eduardo.padilha

22/04/2005

boa dica Marcus , farei isso.

Obrigado.


GOSTEI 0
POSTAR