這裏的人一個非常簡單的問題:)SQL Server 2005中 - 附近有語法錯誤「/」
試圖更新以下內容的SQL列:
UPDATE [NameOfTable]
SET [HtmlContent] = 'a href="/sell-your-boat/"'
WHERE HtmlID = 123456
,但我得到以下錯誤消息:'/'附近的語法不正確。
我知道這是因爲我需要逃避/角色,但我的頭撞牆試圖找到答案,因爲我知道這可能很簡單!
謝謝
這裏的人一個非常簡單的問題:)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