2009-06-24 7 views

Répondre

9

Avez-vous déjà essayé de lancer ou de convertir une chaîne en chaîne, puis de la concaténer?

CAST(NEWID() AS NVARCHAR(36)) 
+0

J'ai essayé ceci cela ne fonctionne pas, donnant la syntaxe incorrecte près de fonte, ou convertissez si im convertissant –

+0

@ Yaser: "CHOISIR CAST (NEWID() comme NVARCHAR (36))". S'il vous plaît essayez de penser par vous-même. – gbn

+0

Désolé Chers amis mon où la condition est OERE (CreatedBy = CAST (@p_CreatedBy AS NVARCHAR (100))) ici @CreatedBy est un identifiant unique j'ai même essayé de le convertir, n'obtenant aucun résultat. Aidez s'il vous plaît –

7

je sais que c'est vieux, mais je suis tombé sur ce poste à essayer de comprendre la même chose et le problème était que je n'avais pas assez « s autour de mon identifiant unique. Je essentiellement eu:

'SELECT * FROM Interface WHERE ID = '' + CAST(@InterfaceID AS NVARCHAR(36)) + '' AND 1 = 1'

j'ai eu une erreur indiquant que la syntaxe incorrecte près 00A (la première partie du GUID). Le problème est que cela a été analyse pas à:

SELECT * FROM Interface WHERE ID = 00A3F5B5-C7B3-4128-B03A-EADE79129F40 AND 1 = 1

En changeant ma requête:

'SELECT * FROM Interface WHERE ID = ''' + CAST(@InterfaceID AS NVARCHAR(36)) + ''' AND 1 = 1'

avec trois apostrophes j'ai obtenu:

SELECT * FROM Interface WHERE ID = '00A3F5B5-C7B3-4128-B03A-EADE79129F40' AND 1 = 1

Ce qui est correct.

Espérons que ça aide.

Questions connexes