2014-07-04 1 views
0

Je suis en train de ce qui suit:Erreur lors de la mise à jour des valeurs d'une colonne dans SQL Server?

update Question set CreatedBy = "02712b8a-1f32-49bc-911b-d3ee4d0c9d90" 

Mais cela me donne une erreur:

Invalid column name '02712b8a-1f32-49bc-911b-d3ee4d0c9d90'. 

Quand j'essayez ce qui suit cela fonctionne bien et énumère les valeurs:

select createdby from question 

Je vérifié et de ce que je comprends la syntaxe de ma mise à jour est correcte. Quelqu'un peut-il voir ce qui pourrait être faux. Pourquoi suppose-t-on que la chaîne longue est un nom de colonne. Notez que le type de données de CreatedBy est UNIQUEIDENTIFIER.

+1

Modifier les guillemets doubles guillemets simples –

+0

des guillemets doubles utilisés pour les identifiants (noms de colonnes, noms de table, etc.), des guillemets simples pour littéraux. – Stan

Répondre

0

QUOTED_IDENTIFIER doit être activé. Avec ceci, SQL Server suit la norme ANSI qui dicte que les guillemets doubles (") sont pour les identificateurs et les guillemets simples (') sont pour les littéraux de chaîne. Par conséquent, il interprète 02712b8a-1f32-49bc-911b-d3ee4d0c9d90 comme un nom de colonne, pas une valeur de chaîne comme vous le souhaitez; votre requête est synonyme de:

update Question set CreatedBy = [02712b8a-1f32-49bc-911b-d3ee4d0c9d90] 

La solution - Utiliser les guillemets simples au lieu:

update Question set CreatedBy = '02712b8a-1f32-49bc-911b-d3ee4d0c9d90' 
0

Je pense que le problème est entre guillemets. Essayez cette

update Question set CreatedBy = '02712b8a-1f32-49bc-911b-d3ee4d0c9d90' 
0

Puisque vous comparez la valeur varchar contre une valeur de chaîne & dans la chaîne SQL doit être écrit avec les guillemets simples

problème est donc avec des guillemets doubles, utilisez des guillemets simples au lieu.

update question set createdby = 'your value goes here' 

grâce

espérons que cela fonctionne

Questions connexes