ошибка, строка или двоичные данные будут обрезаны при попытке вставить - PullRequest
224 голосов
/ 08 апреля 2011

Я запускаю файл data.bat со следующими строками:

Rem Tis batch file will populate tables

cd\program files\Microsoft SQL Server\MSSQL
osql -U sa -P Password -d MyBusiness -i c:\data.sql

Содержимое файла data.sql:

   insert Customers
            (CustomerID, CompanyName, Phone)
             Values('101','Southwinds','19126602729')

Есть еще 8 похожих строк для добавления записей.

Когда я запускаю это с start> run> cmd> c:\data.bat, я получаю это сообщение об ошибке:

1>2>3>4>5>....<1 row affected>
Msg 8152, Level 16, State 4, Server SP1001, Line 1
string or binary data would be truncated.

<1 row affected>

<1 row affected>

<1 row affected>

<1 row affected>

<1 row affected>

<1 row affected>

Кроме того, я новичок, очевидно, но что означают Level # и state #, и как мне искать сообщения об ошибках, такие как приведенные выше: 8152?

Ответы [ 12 ]

2 голосов
/ 02 августа 2018

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

1 голос
/ 12 мая 2018

Другая ситуация, в которой может возникнуть эта ошибка, заключается в SQL Server Management Studio. Если в вашей таблице есть поля «текст» или «текст», независимо от того, какое поле вы обновляете (например, бит или целое число). Кажется, что Studio не загружает целые поля "ntext", а также обновляет ВСЕ поля вместо измененных. Чтобы решить эту проблему, исключите поля «текст» или «текст» из запроса в Management Studio

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