Apagar CONSTRAINT sem saber o nome

17/11/2010

0

Boa Tarde 
Como eu posso apagar CONSTRAINT´s sem saber qual o nome delas ?
Por exemplo, tenho uma TABELA X e 3 CONSTRAINT´S

ALTER TABLE TABELA_X DROP CONSTRAINT PK__XYZ_71D1E811ALTER TABLE TABELA_X DROP CONSTRAINT PK__XYZ_21321232ALTER TABLE TABELA_X DROP CONSTRAINT PK__XYZ_64534262
Minha divergência é que nunca sei exato o nome das CONSTRAINT e como posso apaga-la, sem consultar os mesmos ?
Não sei se fui claro, mas agradeço as dicas.
Att

Alexandre Henzen

Alexandre Henzen

Responder

Posts

23/11/2010

Jair N.

Bom Dia, um dos metodos, seria criar um procedimento, e pegar os nomes das chaves extrangeiras que compõe a tabela, e num processo em loop excluir um a um retornando sua opçao através de uma seleção a exemplo:
     SELECT  sysobjects.name AS nome_foreign_key
       FROM  sysobjects
 INNER JOIN  sysforeignkeys
         ON (sysforeignkeys.constid = sysobjects.id)
 INNER JOIN  syscolumns
         ON (syscolumns.id  = sysforeignkeys.fkeyid)
        AND (syscolumns.colid = sysforeignkeys.fkey)
      WHERE (OBJECT_NAME(sysobjects.parent_obj) = 'TABELA_X')
        AND (sysobjects.xtype = 'F')
        AND (syscolumns.name = 'CAMPO_X')

É onde a entidade "campo_x" poderá ser ou não necessário para este processo de exclusão.
Seria esta sua solução? ou necessáriamente teria que simplesmente excluir todas sem excesão?

Pegando num laço enquanto existir  ALTER TABLE tabela_X DROP CONSTRAINT "nome_foreign_key";

Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar