Changer le type de données de la colonne en identifiant unique de bigint
Je veux changer le type de données d'une colonne dans une table dans sql server. J'ai utilisé la déclaration suivante:
ALTER TABLE dbo.tbltest
ALTER COLUMN ID uniqueidentifier
Mais il génère l'erreur
Opérande type de conflit: bigint est incompatible avec uniqueidentifier
source d'informationauteur Visions
Vous devez vous connecter pour publier un commentaire.
Suivez les Étapes suivantes:-
1).Tout d'abord supprimer les anciennes données de la table.
2). Utilisation
ALTER TABLE dbo.tbltest
ALTER COLUMN ID varchar(200)
3). Maintenant, encore une fois
ALTER TABLE dbo.tbltest
ALTER COLUMN ID uniqueidentifier
Pour être clair, vous ne pouvez pas convertir une colonne numérique de type uniqueidentifier directement,
mais vous pouvez les convertir en numérique -> varchar -> type uniqueidentifier.
Vous devez ajouter une colonne (éventuellement avec une valeur par défaut ou les valeurs null de sorte que la colonne peut être ajouté avec succès à des lignes avec des données existantes), le mettre à jour les valeurs que vous souhaitez ou avez besoin, modifiez les touches (si c'est une clé primaire changer pour la nouvelle colonne et puis aussi changer toutes les clés étrangères de la table), puis retirez l'ancienne colonne et modifier de la colonne, en tant que de besoin (par exemple la création d'identité de semences, en supprimant les valeurs null, etc.).
Remarque pour les gens à l'aide de Entity Framework:
Évidemment, si vous avez une grande base de données avec des relations complexes, la suppression de toutes les relations et les ID, et re-l'ajout d'eux est une épreuve énorme.
C'est beaucoup plus facile de mettre à jour le modèle généré (.edmx).
Oui, Visual Studio vous permet de mettre à jour le type de données, sans se plaindre. En fait, lorsque vous enregistrez le .fichier edmx, les relations seront validées; les champs que vous avez manqué apparaissent comme des erreurs.
Après vous avez terminé, vous pouvez régénérer la base de données à partir du modèle. Boum, c'est fait.
Si Singh réponse n'est pas de travail, alors vous avez probablement tomber de la table et de le recréer.