MCDBA Brasil E-Book SQL Server 2000 Administração Básica   
13:13:54

 
 
MCDBA Brasil: Forums
 
 


 
  www.mcdbabrasil.com.br :: Exibir tópico - Quantas clausulas cascade posso usar?
 FAQFAQ   PesquisarPesquisar   GruposGrupos   PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   LoginLogin 

Quantas clausulas cascade posso usar?

 
Novo Tópico   Responder Mensagem    www.mcdbabrasil.com.br - Índice do Fórum -> Gerais
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
krismorte
Usuário
Usuário


Registrado em: Jun 05, 2008
Mensagens: 47
Localização: fortaleza/ce

MensagemEnviada: 29 Jul 2008 15:59    Assunto: Quantas clausulas cascade posso usar? Responder com Citação

Gostaria de saber quantas clausulas on update cascade ou on delete cascade podem haver numa mesma tabela, pois nao acho essa informacao no books on-line, nem no google.
Segundo meu instrutor so pode haver uma sendo q ele nao me deu certeza se alguem poder me ajudar sou muito grato .
Muito feliz
valeu!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Sanches
PhD no assunto
PhD no assunto


Registrado em: Oct 22, 2004
Mensagens: 793
Localização: Osasco / SP

MensagemEnviada: 29 Jul 2008 16:05    Assunto: Responder com Citação

Vai valer para os relacionamentos que a tabela tiver !
_________________
Um abraço,

Sanches
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar Email
ALEX_ROSA
Doutor no assunto
Doutor no assunto


Registrado em: Mar 17, 2005
Mensagens: 331
Localização: Mogi-Guacu

MensagemEnviada: 30 Jul 2008 13:53    Assunto: Responder com Citação

ON DELETE e ON UPDATE

sao parametros (ou atributos) de uma Foreign Key e nao de uma tabela.

Os possiveis parametros sao:
{ NO ACTION | CASCADE | SET NULL | SET DEFAULT }

NO ACTION é o padrao se nao for especificado ON DELETE na criaçao da FK.

Como o Sanches comentou, depende de quantos relacionamentos voce tem na tabela feitos atraves de FKs.

ou seja, por tabela voce pode ter varios ON DELETE cada um apontando para uma tabela diferente.

Dai pode surgir a duvida, mas se eu tiver duas FKs para a mesma tabela?
nesse caso vc terá uma delas com ON DELETE CASCADE (por exemplo) e a outra FK com NO ACTION.

Se colocar as duas como ON DELETE CASCADE, na criaçao da segunda voce deve receber uma mensagem de erro parecida como essa:

Introducing FOREIGN KEY constraint 'FKname' on table 'TABLEname' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
_________________
Alex Rosa
http://alexrosadba.wordpress.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar Email Visitar a homepage do Usuário
vladimirrn
PhD no assunto
PhD no assunto


Registrado em: Jul 19, 2007
Mensagens: 539
Localização: Natal/RN

MensagemEnviada: 02 Ago 2008 19:44    Assunto: Responder com Citação

Só complementando com o que o BOL diz:

We recommend that a table contain no more than 253 FOREIGN KEY constraints, and that it be referenced by no more than 253 FOREIGN KEY constraints. Consider the cost of enforcing FOREIGN KEY constraints when you design your database and applications.


Ou seja, a MS não recomenda mais que 253 FKs, onde cada uma você pode ter um CASCADE, desde que não haja duas para uma mesma tabela, como o Alex já disse.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário MSN Messenger
krismorte
Usuário
Usuário


Registrado em: Jun 05, 2008
Mensagens: 47
Localização: fortaleza/ce

MensagemEnviada: 06 Ago 2008 16:43    Assunto: Valeu! Responder com Citação

Valeu! O meu erro foi direciona-las para a mesma tabela.
Muito Obrigado! Muito feliz
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
cadu0220
Visitante
Visitante


Registrado em: Nov 19, 2008
Mensagens: 1
Localização: Campinas/SP

MensagemEnviada: 19 Nov 2008 21:36    Assunto: Responder com Citação

Mas galera, estou com um problema nessa questao de mais de uma FK para a mesma tabela!

meu case é o seguinte:
tenho um banco com a tabela empresas e pedidos, a tabela pedidos tem varias colunas e tres delas sao: id_empresa_entrega, id_empresa_cobranca, id_empresa_faturamento.

Assim, a pedido do cliente, eu PRECISO ter a FK com ON DELETE CASCADE nas tres colunas para a coluna id_empresa da tabela empresas.

Só que quando eu tento criar a segunda FK, o sql server 2005 lança o erro:
"Introducing FOREIGN KEY constraint 'FKname' on table 'TABLEname' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints."

Como que eu faço para que funcione do jeito que eu preciso? tem como contornar esse erro?

Obrigado a todos,
[]s!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    www.mcdbabrasil.com.br - Índice do Fórum -> Gerais Todos os horários são GMT - 3 Hours
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.

Powered by phpBB 2.0.6 © 2001 phpBB Group
phpBB port v2.1 based on Tom Nitzschner's phpbb2.0.6 upgraded to phpBB 2.0.4 standalone was developed and tested by:
ArtificialIntel, ChatServ, mikem,
sixonetonoffun and Paul Laudanski (aka Zhen-Xjell).

Version 2.1 by Nuke Cops © 2003 http://www.nukecops.com

 
 


 
  Todas os logotipos e marcas registradas são de propriedade de seus respectivos donos.
Sistema de portais PHP-Nuke. Copyright © 2003. PHP-Nuke é um Software Livre liberado sob licença GNU/GPL.
Tempo para gerar esta página: 0.627 segundos