2008-11-12 2 views
1

У меня есть запрос SQL, который выглядит следующим образом:вопросительный знак в Вставки Заявление

INSERT INTO DB..incident 
( 
    incident_number  --nvarchar(10) 
) 
VALUES 
(
    N'I?' 
) 

, что делает? делать в инструкции значения?

EDIT :: Оказывается, есть некоторые забавные дела с помощью триггеров и настраиваемых типов данных, которые возникают при вставке (у нас немного испорченная БД.) При нормальных настройках я правильно отметил ответ.

ответ

6

С риском звучать легкомысленно ... Ничего ... Это ставит я? в поле ... Попробуйте это ...

DECLARE @TestTable TABLE (test NVARCHAR(10)) 

INSERT INTO @TestTable (
    test 
) VALUES ( 
    N'I?') 


SELECT * 
FROM @TestTable 
+0

Слушайте! Рискуя оскорбления, я вижу здесь много вопросов, которые заставляют меня задаться вопросом, почему опросчик не просто выполнил эксперимент самостоятельно. Конечно, всегда могут быть факторы, о которых я не знаю, но мне нравится поощрение исследователя. – 2008-11-12 21:20:34

1

Вопрос, на мой взгляд, когда я читал это, что делает N?

В Oracle N перед символьным строковым литералом указывает, что строка должна быть закодирована в национальном (то есть локализованном) наборе символов, а не в наборе символов по умолчанию для базы данных.

Как вы уже сказали, вы вставляете строку «Я?». в колонку. Однако он может быть закодирован с использованием другого набора символов (хотя, поскольку эти символы находятся в стандартном диапазоне ASCII, результат, вероятно, будет таким же).

+1

N указывает, что он вставляет символы Юникода – HLGEM 2008-11-12 21:14:28

Смежные вопросы