SQL Server 2005中 - 附近有语法错误“/”
这里的人一个非常简单的问题:)SQL Server 2005中 - 附近有语法错误“/”
试图更新以下内容的SQL列:
UPDATE [NameOfTable]
SET [HtmlContent] = 'a href="/sell-your-boat/"'
WHERE HtmlID = 123456
,但我得到以下错误消息:'/'附近的语法不正确。
我知道这是因为我需要逃避/角色,但我的头撞墙试图找到答案,因为我知道这可能很简单!
谢谢
你不需要逃避斜线在SQL字符串。唯一需要转义的字符是撇号(')。
您显示的查询没有任何问题,所以唯一的解释是您实际运行的代码看起来不像那样。
它没有意义的周围有一个href属性HTML编码引号,所以我的猜测是,HTML代码实际上看起来是这样的:
<a href='/sell-your-boat/'>
文本中的任何撇号将有当您将其放入SQL代码中的字符串文字中时,将被编码为双撇号。
我不知道从哪里执行查询,但如果可能的话,参数化的查询将是可取的,因为您不必自己转义文本,只需将文本分配给属性值即可。
是的,我的坏。在我正在复制和粘贴时,我试图插入字符串中的一个撇号,然后掠过它。用双撇号替代它,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="/sell-your-boat/"'
where htmlid = 123456
select * from test where htmlid = 123456
drop table test
我的输出
123456 a href="/sell-your-boat/"
斜杠是不是在SQL – 2010-10-31 22:12:44
为什么特殊字符那么当我尝试更新包含/?的列时出现此错误。谢谢 – timothyclifford 2010-10-31 22:15:02
列的类型是什么? – steinar 2010-10-31 22:19:13