10
votes

Comparez Varchar et Diplidentifier

En raison d'une surveillance plutôt brillante de mon projet actuel, nous avons des GUDS qui se sont stockés dans une colonne Varchark dans une table, qui doit être comparée à une colonne unique à l'identifiant dans une autre.

Comment puis-je faire cela? SQL Server dit simplement qu'il ne peut pas convertir d'une chaîne de caractères en un caractère unique.


0 commentaires

4 Réponses :


6
votes

Convertissez le site crédentifiant en Varcharne:

CAST( uniqueidentifier_col_name as varchar)


1 commentaires

Vous ne pouvez pas vous lancer dans un seul varchar mais Varchar (50) I.e



1
votes

Vous devrez jeter l'autre unique identifiant à Varchar.

SQL Server essaie probablement de lancer des objets comme "Bob" à uniquesIdentifier et il échoue. Selon Cast / Convert c'est autorisé, donc Ce doit être les valeurs de la colonne Varchar.


0 commentaires

18
votes

Si SQL se plaint, il ne peut pas lancer que cela signifie non seulement que vous avez stocké le caractère unique comme Varchar, vous avez utilisé un format différent de SQL Server (par exemple, vous avez ajouté le '{' et '}'). SQL est parfaitement capable de casser la chaîne de coulée à uniquesIdentifier lorsqu'il est correctement formaté: xxx

Selon la manière dont vous avez enregistré le caractère unique, vous aurez probablement tomodifier les données et votre code pour correspondre au format SQL ( non {}).


0 commentaires

5
votes

Je viens de travailler le script de test suivant: xxx

exécutez dans une fenêtre SSMS ou via SLQCMD -I -I, les résultats sont les mêmes - SQL (2005) convient parfaitement à la conversion implicite. Cela favorise ce que je me souviens de SQL 2000 lorsque j'ai eu un problème similaire il y a des années.

La principale chose est que la chaîne de Varcharise doit correspondre au modèle GUID:

  • 8 chiffres hexagonaux
  • Dash
  • 4 chiffres hexagonaux
  • Dash
  • 4 chiffres hexagonaux
  • Dash
  • 4 chiffres hexagonaux
  • Dash
  • 12 chiffres hexagonaux

0 commentaires