2017-01-04 5 views
1

У меня есть SQL-запрос, который вставляет данные в базу данных. Ниже мой пример данных:SQL Escape '#' Symbol

  • OrderID:
  • Email: #TestDistribution

Однако, когда я пытаюсь вставить OrderID и Email значения в таблицу, но '#' не может быть прочитан SQL Server.

Так, как бы я избежал этого?

У меня есть идея, что апострофа можно избежать, используя CHAR(29) и что будет эквивалентом для #?

Ниже мой запрос:

INSERT INTO orders(orderid,email) VALUES(1,'#TestDistribution') 

Ниже представлена ​​структура таблицы:

заказы

  • orderid: int
  • email: nchar(150)

Ошибка сервера не возникает, но после проверки таблицы заказов данные не были вставлены.

+0

Просьба показать инструкцию для вставки. –

+0

Пожалуйста, разместите свой запрос INSERT –

+0

Каков тип данных вашего электронного письма в столбце? –

ответ

0

Спасибо за регистрацию ответы здесь. Проблема уже решена. Я узнал, что на моем сервере есть некоторые настройки, которые ограничивают специальные символы.

Извинения.

Спасибо всем!

1

отлично работает для меня на SQL Server 2008 с помощью:

Создать/Вставка:

CREATE TABLE yourtable 
    ([OrderID] int, [Email] nvarchar(99)) 
; 

INSERT INTO yourtable 
    ([OrderID], [Email]) 
VALUES 
    (1, '#TestDistribution') 
; 

Выбрать:

SELECT * FROM yourtable 

Выход:

OrderID Email 
1  #TestDistribution 
+0

Привет. Я использую SQL Server 2008. Является ли это той же версией, что и ваша? –

+0

@ IanSiñel Да, если быть более конкретным, я тестировал его в SQL Server 2008 R2 10.50.4000.0 – Matt

1

you'vve получил два 'a конец

попробовать

INSERT INTO orders(orderid,email) VALUES(1,'#TestDistribution') 
+0

Я все равно получаю тот же результат. Данные не были вставлены. –

+0

Что произойдет, если вы удалите #? Является ли проблема определенно проблемой? Это единственные поля в вашей таблице? Нужно ли заполнять поля нулевыми данными? возможно, покажите нам CREATE TABLE для вашей таблицы. – Cato

+0

Вы доказали, что проблема # является важным вопросом - если это проблема #, то изменение # на X предположительно остановит ошибку - это не исправить, это эксперимент - вы пробовали это? – Cato

0

Убедитесь, что тип столбца должен быть VARCHAR

create table orders(orderid int(30),email varchar(30)); 
insert into orders value(1,'#TestDistribution'); 
select * from orders;