Problème Microsoft SQL Server [Résolu]

threadom 101 Messages postés mardi 8 avril 2003Date d'inscription 1 novembre 2007 Dernière intervention - 2 juin 2006 à 16:29 - Dernière réponse : threadom 101 Messages postés mardi 8 avril 2003Date d'inscription 1 novembre 2007 Dernière intervention
- 8 août 2006 à 09:17
Bonjour,

    Quelqu'un connaitrais t'il un moyen d'obtenir le nom de la contrainte automatiquement généré par SQL Server (2000-2005) lors d'un :

"ALTER TABLE MaBase.dbo.MaTable.MonChamp ADD MaColonne REAL DEFAULT 0"

Que ce soit en SQL ou en VB !

Ou alors encore mieux :D

Un moyen d'outrepasser cette contrainte lors de la suppression de la colonne :

"ALTER TABLE MaBase.dbo.MaTable.MonChamp DROP COLUMN MaColonne"

Afin de ne plus avoir l'erreur suivante :

Msg 5074, Niveau 16, État 1, Ligne 1
La objet 'DF__MaTable___MaCol__2C01B702' dépend de colonne 'MaColonne'.
Msg 4922, Niveau 16, État 9, Ligne 1
ALTER TABLE DROP COLUMN MaColonnea échoué car un ou plusieurs objets accèdent à cette colonne.
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
cs_skweeky 261 Messages postés mercredi 3 mai 2006Date d'inscription 11 janvier 2010 Dernière intervention - 7 août 2006 à 21:39
3
Merci
Pour la liste des contraintes de type valeur par défaut :




SELECT







*



FROM


sysobjects


WHERE
xtype

=



'D'



AND
parent_obj

=



OBJECT_ID
(
'nom de la table'


)

Pour supprimer il faut d'abord enlever les contraintes... Je sais c'est galère je suis aussi passé par là !

Christian Robert - Winwise
http://blogs.developpeur.org/christian/
MCT - Database Development / Database Administration

Merci cs_skweeky 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 84 internautes ce mois-ci

Commenter la réponse de cs_skweeky
Meilleure réponse
threadom 101 Messages postés mardi 8 avril 2003Date d'inscription 1 novembre 2007 Dernière intervention - 8 août 2006 à 09:17
3
Merci
Salut, j'ai procédé en 3 temps.

1) Je récupère le nom des contraintes :

SELECT DC.name
FROM SYS.DEFAULT_CONSTRAINTS DC, SYS.TABLES T, SYS.COLUMNS C
WHERE DC.parent_object_id = T.object_id
AND DC.parent_column_id = C.column_id
AND T.name = <Table_Name>
AND C.name = <Column_Name>
AND C.object_id = T.object_id;

2) J'efface les contraintes :

ALTER TABLE <Column_Name> DROP CONSTRAINT <Constraint_Name>

3) Et après j'efface ma colonne

C'est un peu plus lourd mais bon ca a l'air de marché !

Merci threadom 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 84 internautes ce mois-ci

Commenter la réponse de threadom

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.