2012-05-07 24 views
17
進行轉義

我一直在尋找的是必須在MS SQL Server進行轉義的特殊字符列表,但無法找到一個最答案我看到了建議使用參數化的查詢類似的問題的..這我已經在做,但我使用的框架並沒有爲我逃脫。字符必須在TSQL

因此我想我會給一堆的一種嘗試,看看哪一個失敗....我在這樣的查詢我幾乎嘗試了所有的角色我能找到嘗試了簡單的查詢

select * from x where value = '<characters>' 

在我的鍵盤上,他們都似乎工作...除了單引號..一個失敗。

因此,我想知道,是無效的,必須在MS SQL Server進行轉義字符列表 - TSQL,不希望採取的只是逃避單引號的風險,並留下可能導致麻煩

休息

感謝您的幫助

+2

咦?參數化查詢有什麼問題? – SLaks

+0

,他們有不同的表現框架...不是爲我工作 –

+5

那麼你應該解決這個問題。 – SLaks

回答

30

需要在字符串中轉義的唯一字符是單引號(這是用兩個單引號一起完成的)。否則,它是一個字符串,並且t-sql將不再進行大驚小怪。

如果您使用的是LIKE語句,請參閱本SO話題Escape a string in SQL Server so that it is safe to use in LIKE expression

順便說一句,任何框架,並不讓我使用參數,不正確逃生的東西對我來說,是一個硬停止。試圖手動清理字符串輸入就像依靠拉出方法;最終它會得到你。

+0

感謝HackedByChinese,那是我之後唯一的確認!我見過手動查詢 –

+1

第一次逃逸比喻成拉出...笑。 – Corbin

+0

感謝Apache Cayenne! –

0

不知道這是正確的。

%.和其他通配符取決於查詢,也可能需要轉義。 你正在尋找一個點。這將失敗

select * from xxxx where field like '%.%' 
+1

請不要破壞你的答案。如果您認爲這是不正確的,並且想刪除它,請點擊您帖子下方的「刪除」鏈接。 – Tunaki

0

我只想說,下劃線(_)也需要進行轉義。

SELECT * FROM產品,其中SomeColumn像「FD [_]%」

順便說一句,沒有錯參數化查詢,但有時你想去的SQL管理控制檯和快速運行一個查詢找到有些東西。

相關問題