2012-05-14 3 views
0

Я пытаюсь создать следующую таблицу, но она не создаст ??Почему эта таблица не создает

use [TagHolderDB] 
CREATE TABLE TBLSearchTags 
(
    TagID int(11), --NOT NULL AUTO_INCREMENT, 
    Tagterm varchar(255) NOT NULL DEFAULT '', 
    Tagcounter int(11) NOT NULL DEFAULT '1', 
    TaglastSearch datetime NOT NULL DEFAULT '0000-00-00 00:00:00', 
    PRIMARY KEY (TagID), 
    --KEY Tagterm (Tagterm) 
) --ENGINE=TagHolderDB; 

Текущая ошибка:

Msg 2716, Level 16, State 1, Line 2 колонки, параметра или переменной # 1: Невозможно задать ширину столбца по типу данных междунар.

Существует также различные ошибки, когда я отодвинуться комментарии -

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

Ошибки, когда я удалить - комментарии:

Msg 102, Level 15, State 1, Line 4 Неправильный синтаксис около 'AUTO_INCREMENT.

Msg 156, Level 15, State 1, Line 9 Неверный синтаксис рядом с ключевым словом 'KEY'.

Msg 102, Level 15, State 1, Line 10 Неверный синтаксис около '='.

Если кто-то может объяснить мне, что ДВИГАТЕЛЬ делает, это было бы здорово.

+1

Решение в сообщении об ошибке. –

+0

Не могли бы вы показать мне, что вы имеете в виду? – Pomster

+2

выглядит как MySQL-таблица defintion (не sql-сервер) –

ответ

2

Внутренний тип данных не имеет длины.

Попробуйте это:

use [TagHolderDB] 
CREATE TABLE TBLSearchTags 
(
    TagID int, --NOT NULL AUTO_INCREMENT, 
    Tagterm varchar(255) NOT NULL DEFAULT '', 
    Tagcounter int NOT NULL DEFAULT '1', 
    TaglastSearch datetime NOT NULL DEFAULT '0000-00-00 00:00:00', 
    PRIMARY KEY (TagID), 
    --KEY Tagterm (Tagterm) 
) --ENGINE=TagHolderDB; 
+0

Спасибо, что это создало, потеряет ли какую-либо функциональность, в таблицу, которую я сначала пытался создать, потому что, как я сказал, я следую учебнику, я не хочу доводить до конца и не работать. – Pomster

+0

Хотя это не будет работать в SQL-Server, поскольку ваша дата по умолчанию недействительна. ** Редактирование **: только в комментариях, которые OP фактически использует MySql. –

+0

Урок Pomster может быть неправильным или из другой версии MYSQL. Проверьте типы данных «int» здесь: http://dev.mysql.com/doc/refman/5.5/en/integer-types.html –

1

Я думаю, что ошибка говорит само за себя.

Вы не можете указать ширину столбца для типа данных int.

SQL-целое число всегда занимает 4 байта памяти, начиная от -2147483648 до 2147483647.

Так заменить int(11) с int.

CREATE TABLE [dbo].[TBLSearchTags](
    [TagID] [int] IDENTITY(1,1) NOT NULL, 
    [Tagterm] [varchar](255) NOT NULL, 
    [TagCounter] [int] NOT NULL CONSTRAINT [DF_TBLSearchTags_TagCounter] DEFAULT ((1)), 
    [TaglastSearch] [datetime] NOT NULL CONSTRAINT [DF_TBLSearchTags_TaglastSearch] DEFAULT ('1753-01-01'), 
CONSTRAINT [PK_TBLSearchTags] PRIMARY KEY CLUSTERED 
(
    [TagID] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] 
+0

Спасибо, потеряет ли какая-либо функциональность, в таблицу, которую я сначала пытался создать, потому что, как я заявил, что следую учебнику, я не хочу доводить до конца и не работать – Pomster

1

вместо

NOT NULL AUTO_INCREMENT, 

сделать

IDENTITY(1,1) NOT NULL 

и заменить int(11) с int:

use [TagHolderDB] 
CREATE TABLE TBLSearchTags 
(
    TagID int IDENTITY(1,1) NOT NULL, 
    Tagterm varchar(255) NOT NULL DEFAULT '', 
    Tagcounter int NOT NULL DEFAULT '1', 
    TaglastSearch datetime NOT NULL DEFAULT '0000-00-00 00:00:00', 
    PRIMARY KEY (TagID) 
) 
+0

Спасибо, потеряет ли какая-либо функциональность, в таблицу, которую я сначала пытался создать, потому что, как я заявил, «Следуя учебнику, я не хочу доводить до конца и не работать – Pomster

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