Не удалось выполнить запрос. Ошибка: строка или двоичные данные будут усечены в таблице xdbo.user_info’, столбец ‘uid’

#sql #azure #azure-sql-database

#sql #azure #azure-sql-database

Вопрос:

У меня проблема с вставкой значений в мою базу данных SQL server в Azure, я получаю следующую ошибку:

 Failed to execute query. Error: String or binary data would be truncated in table 'dummy_app.dbo.user_info', column 'uid'. Truncated value: 'u'.
The statement has been terminated.  
  

Я не понимаю, где я ошибаюсь, я только что создал сервер, и я пытаюсь поэкспериментировать, но не могу это исправить.

 if not exists (select * from sysobjects where name='user_info' and xtype='U')

    create table user_info (

        uid varchar unique,
        name varchar,
        email varchar

    )

go;
INSERT INTO dbo.user_info(uid, name, email) VALUES('uids', 'name', 'email') go;
  

Создание таблицы работает нормально, единственное, что не работает, это вторая команда INSERT

Ответ №1:

Я подозреваю, что причина в том, что вы не определили длину для varchar, и по умолчанию в качестве длины используется значение 1. Поэтому ваше значение будет усечено.

Установите длину переменной примерно на varchar(200), и все должно быть готово.

Ответ №2:

Это похоже на тот факт, что CREATE часть вашей процедуры для таблицы не включает длину varchar , поэтому вам придется указать длину, такую как varchar(50) , поскольку значение по умолчанию равно 1 . Обратитесь к официальным документам MS по ссылке в примечаниях.

docs.miscrosoft.com

Кроме того, вот синтаксис для CREATE TABLE Azure, который также может быть полезен.

Синтаксис Azure CREATE TABLE