Ne peut pas drop index UNIQUE à partir de la table

Lorsque j'exécute cette requête

ALTER TABLE "dbo"."ROOM" DROP INDEX "UNIQUE";

J'ai eu ce message:

Erreur 1018: syntaxe Incorrecte près de 'INDEX'. Si c'est prévu qu'une partie d'un indicateur de table, AVEC UN mot-clé et les parenthèses sont maintenant nécessaires. Voir la documentation en Ligne SQL Server pour la bonne syntaxe.

Le nom de l'index unique est, à juste titre, UNIQUE. Je pense que c'est le problème, et c'est un nom généré automatiquement (pour le client de SQL Server qui a été utilisé pour créer cet index). C'est le create table phrase:

CREATE TABLE "ROOM" (
    "ID" BIGINT NOT NULL DEFAULT NULL,
    //the rest of the columns...
    "ROOM" VARCHAR(100),
    UNIQUE INDEX "UNIQUE" ("ROOM")
)
;

Une idée de comment puis-je supprimer cet indice? Je sais que je peux supprimer la table, et de le créer encore une fois, je veux l'éviter.

  • "Le nom de l'index unique est, à juste titre, UNIQUE.". C'est un terrible nom de l'index. Je voudrais utiliser idx_room_room, ou idxu_room_room pour le nom de l'index.
  • Pourquoi avez-vous une ID de colonne définie comme not NULL par défaut est NULL???? Que ne fait absolument aucun sens. Cette chose cris d'être dans le besoin sérieux d'une refonte complète.
  • "et c'est un nom généré automatiquement": "je suis prêt à parier n'importe quoi que SQL Server n'a pas d'auto-générer le nom "Unique" pour l'index.
  • Tout à fait raison. Mais que de créer la table peut-être est générée automatiquement par le client de sql server que je suis en utilisant..
InformationsquelleAutor Perimosh | 2015-03-06