Select Name from tblAnimal where Id=1
返回:我的寵物Where子句不SQL工作,因爲空格字符的
Select Id from tblAnimal where Name='My Pet' --I copy/pasted this value in SSMS!
返回空變更
一些研究,我發現,它可以是後(爲什麼?) Char(10)和Char(13)。那麼,我猜,當我複製粘貼我的寵物時,它會自動將Char(10)轉換爲Space for Windows環境?
正因爲如此:
Select id from tblAnimal where Name like '%My%'
返回1 雖然
select id from Animal where Name like '%My %'
回報什麼。
問題。
1.爲什麼會發生這種情況?
2.如何解決這個問題(生產數據庫,數百萬條記錄)
3.如何防止這種情況發生?
您可以使用'_'作爲通配符。 'LIKE'%My_Pet%'' – Kermit
@njk,感謝您的建議,但這不是我的解決方案,因爲我不控制'我的寵物'搜索字符串。它來自用戶。我只是希望SQL服務器正常運行並對待所有特殊空間,如普通空間 – user194076
Chars 10/13是一個回車/換行符。這位用戶如何在他們的字符串中輸入?或者你的意思是說這些值存儲在記錄中? –