Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Résoudre les cycles et les chemins en cascade multiples

SQL Server ne prend pas en charge plusieurs chemins en cascade. Vos options pour contourner cette limitation sont :

  1. écrivez votre propre logique pour gérer plusieurs chemins en cascade (recommandé).

  2. modifiez votre schéma de sorte que plusieurs chemins en cascade ne soient pas nécessaires.

  3. attendez que SQL Server corrige cela. Ne retenez pas votre souffle - cela a été une limitation pendant des années. Voir ces éléments Connect :

    un. http://connect.microsoft.com/SQLServer/feedback/details /126159/mises-à-jour-cascade
    b. http://connect.microsoft.com/SQLServer/feedback/details/307723/allow-multiple-cascade-paths-for-foreign-key-and-on-dalete-update-cascade

    Remarquez comment ils n'arrêtent pas de dire "nous n'avons pas le temps pour cela maintenant; nous y réfléchirons pour la prochaine version" ? Ce n'est pas le genre de chose qui vend des logiciels, car les gens se contentent - généralement - de coder eux-mêmes la logique.

  4. migrer vers une plate-forme de base de données qui prend en charge plusieurs chemins en cascade (on dirait que vous avez beaucoup d'options pour cela, mais je ne pense pas que vous en ayez, et je ne sais pas ce que vous sacrifiez en changeant, sans même compter le portage de votre schéma et code).