2009-11-16 9 views
1

J'ai un script pour mettre à jour une base de données. Ce script crée des colonnes dans plusieurs tables. Certaines de ces colonnes et le message "Les noms de colonne dans chaque table doivent être uniques". est montré. Comment puis-je désactiver ce type de message lors de l'exécution du script?noms de colonnes dans chaque table doit être unique

Merci d'avance. Rui

Répondre

7

Il semble que votre script de base de données tente de créer une colonne qui existe déjà dans votre table.

Mettre un chèque dans votre script SQL pour ajouter la colonne ne si elle n'existe pas déjà:

IF NOT EXISTS(SELECT * FROM sys.columns WHERE Name = 'ColumnName' 
       AND object_id = OBJECT_ID('YourTableName')) 
BEGIN 
    ALTER TABLE dbo.YourTableName 
     ADD ColumnName INT -- or whatever it is 
END 

Marc

+0

C'est ce que je fais en ce moment. Le problème est qu'il y a beaucoup de colonnes créées dans le script. Je pensais à quelque chose comme le type "SET IDENTITY_INSERT OFF/ON" ... Rui –

+0

Non, IDENTITY_INSERT n'a rien à voir avec la mise à jour de la structure STRUCTURE - c'est seulement pour l'insertion de données. –

+0

Vous devez vérifier pour chaque colonne, désolé - pas moyen de contourner cela. –

0

Si je comprends bien, vous devez corriger votre script de mise à jour de base de données: l'erreur est assez claire, en ce sens que votre SQL semble spécifier des mises à jour (ou même créer) une colonne dans une table donnée plus d'une fois.

Vérifiez SQL que vous utilisez.

Questions connexes