INSERT中的百分号(%)

时间:2012-02-17 09:09:26

标签: sql sql-server escaping

我必须将值更改为我的数据库。其中一个字符串值可以包含%符号。

粗略的例子:

UPDATE Mortgage 
SET TEXT = 'The interest rate is 7%';

更改未保存在数据库中。如何在SQL Server中删除百分号?

5 个答案:

答案 0 :(得分:4)

UPDATE Mortgage SET TEXT = 'The interest rate is 7' + CHAR(37);

37是百分号的小数ASCII code

答案 1 :(得分:2)

您可以使用自定义转义字符,例如:

UPDATE Mortgage 
SET TEXT = 'The interest rate is 7\%' ESCAPE '\';

但是我认为你不需要在这里转义这个字符%因为它没有特殊含义作为输入值,但你必须要逃避它以防你想在{{1}中使用它查询。

答案 2 :(得分:0)

您是否尝试使用“\”转义角色?

UPDATE Mortgage 
SET TEXT = 'The interest rate is 7\%';

答案 3 :(得分:0)

你的架构是什么?

我试过这个&它的工作原理(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;

答案 4 :(得分:-2)

尝试将%:%%

加倍
UPDATE Mortgage 
SET TEXT = 'The interest rate is 7%%';