我必須將值更改爲我的數據庫。其中一個字符串值可以包含%
符號。INSERT中的百分比符號(%)
粗糙例如:
UPDATE Mortgage
SET TEXT = 'The interest rate is 7%';
的變化不保存在數據庫中。我如何逃避SQL Server中的百分比符號
我必須將值更改爲我的數據庫。其中一個字符串值可以包含%
符號。INSERT中的百分比符號(%)
粗糙例如:
UPDATE Mortgage
SET TEXT = 'The interest rate is 7%';
的變化不保存在數據庫中。我如何逃避SQL Server中的百分比符號
您是否嘗試用「\」來轉義字符?
UPDATE Mortgage
SET TEXT = 'The interest rate is 7\%';
這只是更新列的值''利率是7 \%'' - 這有什麼幫助? – onedaywhen 2012-02-17 11:46:23
將escape char設置爲'\' – 2012-02-22 08:52:40
沒有'SET..ESCAPE'語法! – onedaywhen 2012-02-22 11:00:54
UPDATE Mortgage SET TEXT = 'The interest rate is 7' + CHAR(37);
37爲百分比符號十進制ASCII code。
您可以使用自定義的轉義字符,例如:
UPDATE Mortgage
SET TEXT = 'The interest rate is 7\%' ESCAPE '\';
但我認爲你沒有必要逃離這裏這個角色%
becouse它沒有任何特殊含義作爲輸入值,但你必須如果您想在LIKE
查詢中使用它,請將其轉義。
我期待你的答案在這裏:) – 2012-02-17 09:19:04
當我運行你的代碼時出現錯誤,「關鍵字附近的語法錯誤''ESCAPE''。」 (如果我從包含「ESCAPE」的單詞中註釋掉,它會執行,但顯然會增加一個不需要的'\') – onedaywhen 2012-02-17 11:45:28
你的模式是什麼?
我想這&它的工作原理(SQL-Server 2008 R2的& SSMS):
CREATE TABLE [dbo].[Mortgage](
[TEXT] [varchar](500) NOT NULL
) ON [PRIMARY]
insert Mortgage (TEXT) values ('The interest rate is 7%');
SELECT TEXT FROM Mortgage;
UPDATE Mortgage SET TEXT = 'The new interest rate is 3%';
SELECT TEXT FROM Mortgage;
嘗試加倍%:%%
UPDATE Mortgage
SET TEXT = 'The interest rate is 7%%';
你如何與數據庫交互?使用IDE /客戶端還是自行編寫的軟件? – 2012-02-17 09:11:57
這是正常的SQL Server查詢。它應該正常工作。 – 2012-02-17 09:14:23
[我如何在T-SQL中跳過百分比符號?]的可能重複(http://stackoverflow.com/questions/7191449/how-do-i-escape-a-percentage-sign-in-t-sql ) – 2012-02-17 09:16:18