Trouver une Contrainte de Clé Primaire sur la mouche dans SQL Server 2005
J'ai le SQL suivant:
ALTER TABLE dbo.PS_userVariables DROP CONSTRAINT PK_PS_userVariables;
ALTER TABLE dbo.PS_userVariables ADD PRIMARY KEY (varnumber, subjectID, userID, datasetID, listid, userVarTitle);
Depuis que j'ai de multiples environnements, que PK_PS_userVariables nom de la contrainte est différent sur mes différentes bases de données. Comment puis-je écrire un script qui reçoit ce nom ajoute dans mon script?
Voulez-vous laisser tomber toutes les contraintes, ou juste un en particulier?
je souhaite supprimer toutes les clés primaires sur la table, puis ajouter dans mon extra clés primaires
stackoverflow.com/questions/6115451/... ou: stackoverflow.com/search?q=[sql-server]+drop+constraints
Il ne peut être une clé primaire dans une table. C'est pourquoi il est appelé primaire. 🙂
pourquoi voulez-vous dire il ne peut être une clé primaire? Parlez-vous des colonnes ou le fait que la clé primaire signifie que les données sont normalisées?
je souhaite supprimer toutes les clés primaires sur la table, puis ajouter dans mon extra clés primaires
stackoverflow.com/questions/6115451/... ou: stackoverflow.com/search?q=[sql-server]+drop+constraints
Il ne peut être une clé primaire dans une table. C'est pourquoi il est appelé primaire. 🙂
pourquoi voulez-vous dire il ne peut être une clé primaire? Parlez-vous des colonnes ou le fait que la clé primaire signifie que les données sont normalisées?
OriginalL'auteur cdub | 2011-07-13
Vous devez vous connecter pour publier un commentaire.
Alors que la meilleure pratique est de toujours explicitement le nom de vos contraintes, vous pouvez les obtenir de manière dynamique à partir du catalogue vues:
OriginalL'auteur Aaron Bertrand
Ref: Pinal Dave @ http://blog.sqlauthority.com/2008/09/06/sql-server-find-primary-key-using-sql-server-management-studio/
Je suis d'accord, mais je suis tout à fait pour simplifier, c'est mieux quand je peux sortir avec elle, et Info schéma devrait faire l'affaire dans ce cas particulier, et à l'échelle de mieux de toute façon.
Je suis de plus en plus cohérent que le code plus facile code. Les gens à apprendre à utiliser INFORMATION_SCHEMA le combat avec les informations qu'il ne comprend pas dans ces valeurs aberrantes cas. De toute façon, comment cette "échelle" de mieux? Voulez-vous dire que vous pouvez copier ce code exact et l'exécuter sur un autre SGBDR? Ce n'est pas ce que la plupart des gens qualifient de "l'échelle", mais plutôt "portabilité"...
Ne pas essayer de discuter de la sémantique -- facile n'est pas contraire à la cohérence. La cohérence est bonne, mais c'est un argument POUR info schéma, pas contre elle. sys point de vue sera ré-défini dans le temps, avec les nouvelles versions du serveur, et c'est ce que je veux dire par évolutif -- info schéma des dépendances de vous écrire aujourd'hui doit encore être viable avec la prochaine version. Sys afficher les dépendances, d'autre part, devront faire l'objet d'un double contrôle. Quelle que soit votre façon de travaux, ma façon de travaux, et je pense qu'ils sont à la FOIS bon à savoir, mais on n'est pas nécessairement meilleure que l'autre, tout dépend de la tâche à portée de main.
Pas sûr de la manière dont la cohérence est un argument POUR INFORMATION_SCHEMA dans le cas où vous êtes seulement à faire avec SQL Server (la plupart des gens ne pas aller à d'autres SGBDR plates-formes tout au long de la journée, et la plupart des entreprises ne migrent pas pour différentes plates-formes pour la nuit). De quoi je parle quand je dis que la cohérence est à l'aide de INFORMATION_SCHEMA pour les clés primaires, mais sys.index etc. pour les index.
OriginalL'auteur Chains
OriginalL'auteur bobs