Знак процента (%) в INSERT - PullRequest
       5

Знак процента (%) в INSERT

3 голосов
/ 17 февраля 2012

Я должен изменить значения в моей базе данных. Одно из строковых значений может содержать знак %.

Грубый пример:

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

Изменение не сохраняется в базе данных. Как я могу избежать знака процента в SQL Server

Ответы [ 5 ]

4 голосов
/ 17 февраля 2012
UPDATE Mortgage SET TEXT = 'The interest rate is 7' + CHAR(37);

37 - десятичный ASCII-код для символа процента.

2 голосов
/ 17 февраля 2012

Вы можете использовать пользовательский escape-символ, например:

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

Но я думаю, вам не нужно было экранировать этот символ %, потому что он не имеет специального значения в качестве входного значенияно вы должны избежать этого, если хотите использовать его в запросе LIKE.

0 голосов
/ 05 октября 2016

Попробуйте удвоить%: %%

UPDATE Mortgage 
SET TEXT = 'The interest rate is 7%%';
0 голосов
/ 18 февраля 2012

Какая у вас схема?

Я попробовал это, и это работает (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;
0 голосов
/ 17 февраля 2012

Вы пытались экранировать персонажа с помощью "\"?

UPDATE Mortgage 
SET TEXT = 'The interest rate is 7\%';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...