Astuces
Écrit par Administrator    Mercredi, 19 Novembre 2008 12:08    PDF Imprimer Envoyer
Supprimer une contrainte d'intégrité lié à un champ sans en connaître le nom sous SQL
Astuces - Javascript

Le titre peu porter à confusion, mais voyons un peu le contexte. Nous avons une multitude de champ à supprimer dans une de nos bases de données. Chaque champ est lié à une contrainte d'intégrité (constraint) dont le nom est inconnu. Pour pouvoir supprimer les champs, il faut d'abord supprimer les contraintes qui leurs sont liées. Voyons ici comment supprimer ces contraintes sans avoir besoin de faire le travail manuellement.

T-SQL

CREATE PROCEDURE [dbo].[deleteConstraint_SP]
(
    -- Nom de la table ou la contrainte est situé.
    @SearchField as varchar(250) = null,
    -- Nom du champ lié à la contrainte inconnu.
    @SearchTable as varchar(250) = null
)
AS
BEGIN
    -- Variable qui contiendra la nom de la contrainte d'intégrité lié au champ demandé en paramètre.
    DECLARE @default as varchar(250)   
   
    -- Requête de récupération du nom de la contrainte
    SELECT @default = object_name(cdefault) FROM syscolumns WHERE id = object_id(@SearchTable) AND name = @SearchField

    -- Suppression de la contrainte
    EXEC ('ALTER TABLE ' + @SearchTable + ' DROP CONSTRAINT ' + @default)

END

Rétrolien(0)

Adresse URI pour un rétrolien sur cet article

Commentaires (0)

Flux RSS pour les commentaires

Ecrivez un commentaire

Réduire l'éditeur | Agrandir l'éditeur

busy
 

Derniers ajout

Les plus lus