2010-10-31 6 views
0

est ici une question très facile pour quelqu'un :)SQL Server 2005 - syntaxe incorrecte près de «/»

Essayer de mettre à jour une colonne SQL avec les éléments suivants:

UPDATE [NameOfTable] 
SET [HtmlContent] = 'a href="/sell-your-boat/"' 
WHERE HtmlID = 123456 

Mais je reçois le message d'erreur suivant : Syntaxe incorrecte près de '/'.

Je sais que c'est parce que j'ai besoin d'échapper le caractère/mais en me cognant la tête contre le mur en essayant de trouver la réponse car je suis conscient que c'est probablement très simple!

Merci

+0

Slashes ne sont pas des caractères spéciaux dans SQL –

+0

alors pourquoi alors est-ce que j'obtiens cette erreur en essayant de mettre à jour la colonne avec une valeur contenant /? Merci – timothyclifford

+0

Quel est le type de la colonne? – steinar

Répondre

1

Vous n'avez pas besoin d'échapper à barres obliques dans une chaîne dans SQL. Le seul caractère dont vous avez besoin pour vous échapper est apostrophe (').

Il n'y a rien de mal dans la requête que vous affichez, donc la seule explication est que le code que vous utilisez actuellement ne ressemble pas à ça.

Il n'a pas de sens d'avoir des guillemets codés HTML autour d'un attribut href, donc je suppose que le code HTML ressemble en fait quelque chose comme ceci:

<a href='/sell-your-boat/'> 

Tous les apostrophes dans le texte aurait être encodé en double apostrophes lorsque vous le mettez dans une chaîne littérale dans le code SQL. Je ne sais pas d'où la requête est exécutée, mais une requête paramétrée serait préférable si possible, car alors vous n'avez pas besoin d'échapper le texte vous-même, vous affectez juste le texte à la valeur de la propriété.

+0

Oui mon mauvais. Avait-on une apostrophe dans la ficelle que j'essayais d'insérer et je l'avais juste effleurée quand je copiais et collais. Remplacé par une double apostrophe et BINGO tout vert. Merci tout le monde :) – timothyclifford

1

Comme tous les commentaires ci-dessus, youd ne ont pas besoin d'échapper à la/

Je viens de faire un test sql rapide dans SQL Server 2005 et n'a pas obtenu un message d'erreur (voir ci-dessous) Nous allons probablement besoin de plus d'informations que ce que vous avez fourni. Courez-vous ce en studio de gestion, ou est-ce sql être appelé dans une application .NET, etc ...

create table test (htmlid int, htmlcontent varchar(516)) 

insert into test select 123456 as htmlid, 'test' as htmlcontent 


update test 
set htmlcontent = 'a href=&quot;/sell-your-boat/&quot;' 
where htmlid = 123456 

select * from test where htmlid = 123456 

drop table test 

ma sortie

123456 a href=&quot;/sell-your-boat/&quot; 
Questions connexes