Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Excluindo linhas relacionadas em um relacionamento muitos-para-muitos


Seu pedido não faz sentido

Drivers como entidades existem separadamente de Carros. Os carros podem ser dirigidos por muitos motoristas, os motoristas podem dirigir muitos carros. É por isso que você tem a tabela muitos-muitos.

Observe o bit "os motoristas podem dirigir muitos carros". Isso significa que, se você excluir a linha Drivers, precisará excluir outras linhas em CarDrivers.

Se você ainda quiser fazer isso, você precisa de um gatilho no CarDrivers. O CASCADE from Drivers to CarDrivers excluirá outras linhas de CarDrivers para você. Também não consigo lembrar o comportamento padrão da recursão do gatilho.

Que bagunça.

Observação:isso quase faz sentido se você tiver exclusividade em uma das colunas na tabela muitos-muitos, então deve ser uma chave estrangeira entre carros e motoristas (único no carro significa "no máximo um motorista por carro" significa coluna FK NULLable em carros)