2016-06-16 2 views
0

Я получаю «Строка или двоичные данные будут усечены» Ошибка при попытке вставить целые числа в одну из моих таблиц.SQL Insert - String или двоичные данные будут усечены для значений INT

Я прочитал несколько сообщений о длине столбца и длине значения, которое вставляется, но это не похоже на мой случай, когда столбцы являются int или smallint, и все значения максимум две цифры.

Структура таблицы выглядит следующим образом:

CREATE TABLE [tblvUserLocation] (
    [User_Location_ID] [int] IDENTITY (1, 1) NOT NULL , 
    [Location_ID] [int] NULL , 
    [Line_Type_ID] [int] NULL , 
    [User_ID] [int] NULL , 
    [Active] [smallint] NULL CONSTRAINT [DF_tblvUserLocation_Active] DEFAULT (1), 
    [Last_Updated] [smalldatetime] NULL CONSTRAINT [DF_tblvUserLocation_Last_Updated] DEFAULT (getdate()), 
    [Last_Updated_By] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL CONSTRAINT [DF_tblvUserLocation_Last_Updated_By] DEFAULT (suser_sname()) 
) ON [PRIMARY] 
GO 

Вкладыше Я пытаюсь запустить заключается в следующем:

insert into tblvUserLocation (Location_ID, Line_Type_ID, [User_ID], Active) 
values (20, 2, 41, 1) 

и ошибка, я получаю следующее:

Сервер: Msg 8152, уровень 16, состояние 2, строка 1 Строковые или двоичные данные будет усечен. Заявление было прекращено.

Если это делает никакой разницы, я использую SQL Server 2000.

Пожалуйста, дайте мне знать, что ваши мысли.

Спасибо!

+1

Вы знаете, что на самом деле за время, которое вы рассмотренной модернизацию. У вас 5 (и половина, если вы считаете 2008 R2) версий за последние последние. Даже * расширенная поддержка продукта, закончившегося более [три года назад] (https://support.microsoft.com/en-gb/lifecycle?C2=1044). (И, по сути, даже расширенная поддержка в 2005 году закончилась в этом году) –

+0

Вы знаете, это действительно выходит за рамки моей силы выбора. У компании есть приложения, работающие в унаследованных технологиях, я просто выполняю свою работу. Но спасибо за бесполезный комментарий в любом случае (: –

ответ

4

Похоже, проблема связана с вашим ограничением [DF_tblvUserLocation_Last_Updated_By].

Это тянет текущее имя пользователя, которое более чем вероятно длиннее длины вашего [Last_Updated_By] столбец VARCHAR(10).

Обновите DDL для:

[Last_Updated_By] [varchar] (128) 
+0

Эй, Крис! Это сделал трюк, спасибо большое (: –

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