Utilisation de guillemets simples dans une instruction Exec dans SQL
Je vais avoir des problèmes d'exécution d'une instruction SQL à partir d'une procédure stockée avoir des guillemets simples. Voici ma requête à partir d'une procédure stockée que je suis en cours d'exécution.
EXEC('UPDATE myTABLE
SET myCOLUMN = (SELECT Replace('OSINGLEQUOTEJOHN DOE','SINGLEQUOTE','''')')
Je suis en train de mettre à jour la table "matable" colonne "macolonne" avec la valeur "O'John Doe"
La requête réelle, c'est comme cela, j'ai essayé de le simplifier un peu dans l'exemple ci-dessus
EXEC('UPDATE myTABLE
SET myCOLUMN = (SELECT Replace('+ @IntegrationGuardian2FullName +','SINGLEQUOTE','''')')
La valeur de @IntegrationGuardian2FullName
est "OSINGLEQUOTEJOHN DOE". L'espoir qui fait plus de sens.
Tout organisme peut m'aider à le formatage de cette requête?
source d'informationauteur Mithil | 2010-07-29
Vous devez vous connecter pour publier un commentaire.
Utilisation:
Ce que vous avez besoin de deux guillemets simples autour de la chaîne, et ce, afin de remplacer, et d'autres guillemets à cause de l'apostrophe s'échapper nécessaire pour SQL dynamique.
Vous devez double-échapper l'apostrophe à l'intérieur de la chaîne de caractères entre guillemets - donc utiliser les deux guillemets simples pour envelopper la chaîne, et quatre (c'est à dire deux échappés guillemets) qui sera onu s'est échappé dans une paire de guillemets simples lorsque la requête est analysée, puis de l'onu échappé nouveau dans la seule citation que vous voulez insérer:
Tout OMG Poneys réponse était parfait et m'a aidé aussi bien, quelque chose qui n'était pas immédiatement évident pour moi, c'est comment cela a fonctionné.
Voici comment je l'ai compris, et peut aider les OP ou quelqu'un d'autre toujours à la recherche, à s'appliquer à toute situation.
À l'aide d'un exemple simple
sp_change_users_login 'update_one', 'LName','Uname'
Transformé
select (' sp_change_users_login ''update_one '', ''LName '' ,''Uname '' ')
Tout ce qui a été fait est, comme OMG Poneys ditrenvoyer l'ensemble de la déclaration de guillemets simples(' ).
Ensuite, pour chaque citation qui est déjà présent('), placez l'un des plus à la faire précéder(' ).
Je ne suis pas en mesure de gras les guillemets simples qui ont été ajoutés dans le deuxième énoncé, à le rendre visible.