2013-04-24 2 views
-3

Я пишу простые sql-запросы, но по какой-то причине я продолжаю получать эту ошибку «Msg 8152, уровень 16, состояние 14, строка 1 Строковые или двоичные данные будут усечены». Я не знаю, что вызывает это и Я искал в Интернете, какие вещи могут вызвать эту ошибку, но все, что я нашел, это «Вы пытаетесь ввести слишком длинные данные». Это не так для моего кода.Может ли кто-нибудь сказать мне, что может вызвать эту ошибку?

CREATE TABLE BOOK 
(
    PrimaryAuth  varchar(20) NOT NULL, 
    Title   varchar  NOT NULL, 
    ISBN   varchar(10) NOT NULL, 
    PubID   char(3), 
    Pub_Date  varchar(20), 
    price   float, 
    book_desc  varchar(50), 
    PRIMARY KEY(ISBN), 
    UNIQUE(Title) 
); 

INSERT INTO BOOK values('Scott Westerfeld', 'Peeps', '1595140832', '101', 'September 7, 2006', 8.99, 'A year ago, Cal Thompson...'); 

Может кто-нибудь сказать мне, что я делаю неправильно?

+8

Вам не хватает длины в столбце 'title', в результате ваше значение усекается. – Taryn

+1

Пожалуйста, напишите лучшие заголовки для своих вопросов. Это ничего не говорит о необходимой вам информации. –

+3

@JonathanWood Независимо от названия вопроса, это основная проблема синтаксиса, которая, вероятно, никому не поможет в будущем, поэтому ее следует закрыть как слишком локализованную. – Taryn

ответ

6
Title   varchar  NOT NULL, 

вам нужно дать VARCHAR значение

т.е.

book_desc  varchar(50), 

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

+4

Бог, я должен быть идиотом. Спасибо. – user1489599

+1

@ user1489599 Бог не слушает. – Kermit

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