SQL Server : suppression de table avec contraintes en cascade
Dans Oracle, l'option "CASCADE CONSTRAINTS PURGE" dans l'instruction DROP TABLE permet de suppression d'une table et de ses contraintes et données dépendantes.
La fonctionnalité équivalente dans SQL Server n'est pas disponible via un seul commande. Cependant, il existe deux manières alternatives d'obtenir le résultat souhaité :
Utilisation des options de script :
Cela générera un script qui inclut tous les objets dépendants et les déposera dans le bon order.
Utilisation d'une procédure stockée récursive :
CREATE PROC DropTableCascade (@TableName nvarchar(max)) AS BEGIN IF OBJECT_ID(@TableName) IS NOT NULL BEGIN EXEC sp_MSForEachTable 'IF "{DB_NAME()}.dbo.' + name in (SELECT name FROM sysobjects WHERE type = ''U'' AND parent_id = OBJECT_ID(@TableName)) BEGIN PRINT ''Dropping table '' + ''{DB_NAME()}.dbo.'' + name PRINT ''DELETE FROM '' + ''{DB_NAME()}.dbo.'' + name + ''; DROP TABLE '' + ''{DB_NAME()}.dbo.'' + name + ''; END' DROP TABLE @TableName END END
EXEC DropTableCascade 'YourTableName'
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!