SQL Server 2005中 - 附近有语法错误“/”

问题描述:

这里的人一个非常简单的问题:)SQL Server 2005中 - 附近有语法错误“/”

试图更新以下内容的SQL列:

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

,但我得到以下错误消息:'/'附近的语法不正确。

我知道这是因为我需要逃避/角色,但我的头撞墙试图找到答案,因为我知道这可能很简单!

谢谢

+0

斜杠是不是在SQL – 2010-10-31 22:12:44

+0

为什么特殊字符那么当我尝试更新包含/?的列时出现此错误。谢谢 – timothyclifford 2010-10-31 22:15:02

+0

列的类型是什么? – steinar 2010-10-31 22:19:13

你不需要逃避斜线在SQL字符串。唯一需要转义的字符是撇号(')。

您显示的查询没有任何问题,所以唯一的解释是您实际运行的代码看起来不像那样。

它没有意义的周围有一个href属性HTML编码引号,所以我的猜测是,HTML代码实际上看起来是这样的:

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

文本中的任何撇号将有当您将其放入SQL代码中的字符串文字中时,将被编码为双撇号。

我不知道从哪里执行查询,但如果可能的话,参数化的查询将是可取的,因为您不必自己转义文本,只需将文本分配给属性值即可。

+0

是的,我的坏。在我正在复制和粘贴时,我试图插入字符串中的一个撇号,然后掠过它。用双撇号替代它,BINGO全部绿色。谢谢大家 :) – timothyclifford 2010-10-31 22:37:16

像上面所有的评论,你几乎不需要躲避/

我只是做了在SQL Server 2005中快速SQL测试,并没有得到一个错误信息(见下文) 我们可能需要比您提供的信息更多的信息。你在Management Studio中运行这个,或者是这个SQL被称为在.NET应用程序,等等。

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 

我的输出

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