Как хранятся данные с типом nvarchar [n]? - PullRequest
0 голосов
/ 20 июня 2020

Если я создам такую ​​таблицу,

CREATE TABLE [dbo].[Car]
(
    [Car_ID] [varchar](20) NOT NULL,
    [Car_CODE] [nvarchar](20) NULL,
    [Car_NAME] [nvarchar](50) NULL,
)

Может ли Car_Name содержать максимум 50 символов?

Скажем, я ввожу такой ввод

"Teslaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" 

(60 символов), будет ли он сохранен как

"Teslaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" 

(50 символов)? Может кто-то помочь мне с этим? Большое спасибо

Ответы [ 3 ]

2 голосов
/ 20 июня 2020

Если вы попытаетесь вставить или обновить значение, превышающее длину столбца с помощью запроса или Entity Framework, вы получите сообщение об ошибке:

Строковые или двоичные данные будут усечены

Если вы используете хранимую процедуру, усечение будет выполнено автоматически, и никаких ошибок не произойдет.

0 голосов
/ 20 июня 2020

Как я вижу, ваш пост вызывает два вопроса и, следовательно, два ответа.

1. Как хранится nvarchar?

Тип данных nvarchar будет хранить 2 байта на символ, тогда как varchar только 1 байт.

2. Будет ли мой nvarchar принимать больше символов, чем разрешено?

Нет. Оператор INSERT завершится ошибкой, и вы получите сообщение об ошибке, так как он принимает только <= 50 символов. </p>

0 голосов
/ 20 июня 2020

Информация не вставляется, выдает ошибку

String or binary data would be truncated

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...