2015-02-06 3 views
0

документация не супер ясно: https://msdn.microsoft.com/en-us/library/ms186939.aspxЧто именно смысл NVARCHAR (п)

Что произойдет, если я пытаюсь сохранить длину строки 20 символов в столбце определяется как NVARCHAR (10)? Является ли 10 максимальной длиной поля, или это ожидаемая длина? Если я могу превышать n символов в строке, каковы последствия этого для производительности?

ответ

2

Максимальное количество символов, которые вы можете сохранить в столбце или переменной, напечатанной как nvarchar(n), равно n. Если вы попытаетесь сохранить больше ваша строка будет усечена, или в случае вставки в таблицу, вставка будет запрещен с предупреждением о возможном усечения:

строка или двоичные данные будут усечен. Заявление было завершено .

declare @n nvarchar(10) 
set @n = N'more than ten chars' 
select @n 

Результат:

---------- 
more than 

(1 row(s) affected) 
+1

Если вставки данных в таблицу, и вы пытаетесь поставить более 10 символов, вы получите сообщение об ошибке 'Строка или двоичные данные будут truncated' и не быть способный вставлять данные. –

+0

@ RickS True. Забыл упомянуть об этом. – jpw

0

С моей точки зрения, nvarchar будет хранить только предоставленные символы только до указанной суммы. Nchar фактически заполнит неиспользуемые символы пробелом.

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