comment concaténer uniqueidentifier dans une requête dynamique
J'ai une requête dynamique dans laquelle je veux concaténer uniqueidentifier, mais + et & les opérateurs ne sont pas soutenir cela, est-il une manière que je peux concaténer uniqueidentifier à une chaîne dynamique. Tout échantillon ou toute aide à cet égard sera très appricated.
OriginalL'auteur Yaser Ahmed | 2009-06-24
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayé de moulage ou de la conversion d'une chaîne en premier, puis concating?
CAST(NEWID() DE TYPE NVARCHAR(36))". Veuillez essayer de penser par vous-même.
Désolé Chers amis, ma condition est par là (CreatedBy= CAST(@p_CreatedBy de type NVARCHAR(100)) ) ici @CreatedBy est un type uniqueidentifier j'ai même essayé de le convertir, n'obtient aucun résultat. S'il vous plaît aider
CAST() peut être mise en forme le Guid différemment que votre "CreatedBy" de la colonne. Exécuter les deux versions à la main et vérifier que les chaînes de suivre le même format. Si non, puis de convertir les autres "CreatedBy" à un Guid et comparer les Guid de la place.
il pourrait être le problème, mais comment dois-je faire
OriginalL'auteur Frank Krueger
Je sais que c'est vieux, mais je suis tombé sur ce post en essayant de comprendre la même chose et le problème était que je n'avais pas assez 'autour de mon identifiant unique. En gros, j'ai eu:
'SELECT * FROM Interface WHERE ID = '' + CAST(@InterfaceID AS NVARCHAR(36)) + '' AND 1 = 1'
J'ai une erreur disant: syntaxe incorrecte près de 00A (la première partie de la GUID). Le problème, c'est que l'analyse :
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 eu:
SELECT * FROM Interface WHERE ID = '00A3F5B5-C7B3-4128-B03A-EADE79129F40' AND 1 = 1
Ce qui est correct.
Espère que ça aide.
OriginalL'auteur jesse