Maison >base de données >tutoriel mysql >Comment supprimer les contraintes par défaut dans SQL Server lorsque leurs noms sont inconnus ?
Suppression des contraintes par défaut avec des noms inconnus dans Microsoft SQL Server
Cette question aborde le défi de la suppression des contraintes par défaut des tables SQL lorsque leurs noms sont inconnu, en raison de fautes de frappe potentielles. La requête existante, telle que fournie par l'utilisateur, nécessite le nom exact de la contrainte pour son exécution, ce qui peut poser problème dans certaines situations.
La solution
La solution suggérée implique générer et exécuter une commande SQL dynamique pour supprimer la contrainte en fonction des informations de table, de colonne et de schéma fournies. L'extrait de code partagé par l'utilisateur peut être développé comme suit :
declare @schema_name nvarchar(256) declare @table_name nvarchar(256) declare @col_name nvarchar(256) declare @Command nvarchar(1000) set @schema_name = N'MySchema' set @table_name = N'Department' set @col_name = N'ModifiedDate' select @Command = 'ALTER TABLE ' + @schema_name + '.[' + @table_name + '] DROP CONSTRAINT ' + d.name from sys.tables t join sys.default_constraints d on d.parent_object_id = t.object_id join sys.columns c on c.object_id = t.object_id and c.column_id = d.parent_column_id where t.name = @table_name and t.schema_id = schema_id(@schema_name) and c.name = @col_name --print @Command execute (@Command)
Ce code génère la commande SQL nécessaire pour supprimer la contrainte par défaut pour une table et une colonne spécifiques dans un schéma particulier. La commande est construite dynamiquement sur la base des paramètres fournis, garantissant qu'elle peut être exécutée sans aucune erreur SQL même si le nom de la contrainte est inconnu.
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!