SQL

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Kirill1983
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 05.05.2005 (Чт) 11:27

SQL

Сообщение Kirill1983 » 10.11.2005 (Чт) 16:37

Добрый вечер.Возник вопрос у меня: есть SQL запрос:
Код: Выделить всё

m_dbextract.Execute "ALTER TABLE GMP ADD COLUMN RowID AUTOINCREMENT NOT NULL CONSTRAINT PrimaryKey PRIMARY KEY"

который выдает ошибку
incorrect syntax near the keyword COLUMN.Что это значит?Подскажите пожалуйста

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 10.11.2005 (Чт) 16:51

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

Kirill1983
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 05.05.2005 (Чт) 11:27

Сообщение Kirill1983 » 10.11.2005 (Чт) 17:06

GSerg писал(а):Тип поля укажи. int.

Тип поля RowID?Это делается в SQL запросе или конструктором в таблице?

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 10.11.2005 (Чт) 17:13

m_dbextract.Execute "ALTER TABLE GMP ADD COLUMN RowID [int] AUTOINCREMENT NOT NULL CONSTRAINT PrimaryKey PRIMARY KEY"

Kirill1983
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 05.05.2005 (Чт) 11:27

Сообщение Kirill1983 » 10.11.2005 (Чт) 17:17

Та же ошибка...Incorrect syntax near keyword 'Column' :?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 10.11.2005 (Чт) 17:28

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

Kirill1983
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 05.05.2005 (Чт) 11:27

Сообщение Kirill1983 » 10.11.2005 (Чт) 17:31

GSerg писал(а):Скобки квадратные убери.

Та же ошибка...Incorrect syntax near the keyword 'Column' ... :shock:

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 10.11.2005 (Чт) 17:44

это не акцесс случаем?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 10.11.2005 (Чт) 17:45

Код: Выделить всё
ALTER TABLE GMP ADD COLUMN RowID int AUTOINCREMENT PRIMARY KEY
?
Последний раз редактировалось GSerg 10.11.2005 (Чт) 17:46, всего редактировалось 1 раз.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 10.11.2005 (Чт) 17:45

Код: Выделить всё
ALTER TABLE GMP
    ADD RowID Integer AUTOINCREMENT NOT NULL
CONSTRAINT PrimaryKey PRIMARY KEY

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 10.11.2005 (Чт) 17:47

А если Access...

ALTER TABLE GMP ADD COLUMN RowID counter NOT NULL PRIMARY KEY
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 10.11.2005 (Чт) 17:49

sorry

Код: Выделить всё
ALTER TABLE GMP
    ADD RowID AUTOINCREMENT NOT NULL
CONSTRAINT PrimaryKey PRIMARY KEY

Kirill1983
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 05.05.2005 (Чт) 11:27

Сообщение Kirill1983 » 10.11.2005 (Чт) 17:51

Это не Access,GMP-таблица SQLевская

Kirill1983
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 05.05.2005 (Чт) 11:27

Сообщение Kirill1983 » 10.11.2005 (Чт) 17:53

GSerg писал(а):
Код: Выделить всё
ALTER TABLE GMP ADD COLUMN RowID int AUTOINCREMENT PRIMARY KEY
?

Тоже самое....:(

Kirill1983
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 05.05.2005 (Чт) 11:27

Сообщение Kirill1983 » 10.11.2005 (Чт) 17:55

Konst_One писал(а):
Код: Выделить всё
ALTER TABLE GMP
    ADD RowID Integer AUTOINCREMENT NOT NULL
CONSTRAINT PrimaryKey PRIMARY KEY

Ошибка прыгает "Incorrect syntax near the keyword AUTOINCREMENT" :?:

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 10.11.2005 (Чт) 18:07

а какая у тебя версия акцесса?
на 2003 в dao отлично все работает

Kirill1983
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 05.05.2005 (Чт) 11:27

Сообщение Kirill1983 » 10.11.2005 (Чт) 18:08

Konst_One писал(а):а какая у тебя версия акцесса?
на 2003 в dao отлично все работает

Таблица GMP находится в базе SQL сервера...

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 10.11.2005 (Чт) 18:12

для Sql:

Код: Выделить всё
ALTER TABLE GMP ADD
   RowId int NOT NULL
GO
ALTER TABLE GMP ADD CONSTRAINT
   PK_TEST PRIMARY KEY CLUSTERED
   (
   RowId
   )
GO

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 10.11.2005 (Чт) 18:13

GO - тебе не нужны, это разделители скрипта

Kirill1983
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 05.05.2005 (Чт) 11:27

Сообщение Kirill1983 » 10.11.2005 (Чт) 18:17

Код: Выделить всё

    m_dbextract.Execute "ALTER TABLE GMP ADD RowId int NOT NULL GO ALTER TABLE GMP ADD CONSTRAINT PK_TEST PRIMARY KEY CLUSTERED (RowId) GO"

Выдает "Line 1: Incorrect syntax near 'GO'"
Не понимаю,почему он не хочет чиать строку

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 10.11.2005 (Чт) 18:20

...Execute "ALTER TABLE GMP ADD RowId int NOT NULL " & _
"ALTER TABLE GMP ADD CONSTRAINT PK_TEST PRIMARY KEY CLUSTERED (RowId)"

Kirill1983
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 05.05.2005 (Чт) 11:27

Сообщение Kirill1983 » 10.11.2005 (Чт) 18:31

Konst_One писал(а):...Execute "ALTER TABLE GMP ADD RowId int NOT NULL " & _
"ALTER TABLE GMP ADD CONSTRAINT PK_TEST PRIMARY KEY CLUSTERED (RowId)"

Выдает ошибку,что RowID Не может быть добавленна...because it does not allow nulls and does not specify a DEFAULT definition. :shock: :?:

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 10.11.2005 (Чт) 18:35

RowID int IDENTITY(1,1) NOT NULL
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Kirill1983
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 05.05.2005 (Чт) 11:27

Сообщение Kirill1983 » 10.11.2005 (Чт) 18:42

GSerg писал(а):RowID int IDENTITY(1,1) NOT NULL

Заработало :lol:
GSerg можешь объяснить пожалуйста в чем дело было?
Благодарю за помошь Konst_One :!: :D

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 10.11.2005 (Чт) 18:51

Надо просто сразу говорить, что у тебя за база.
SQL - это не база, это язык.

В SQL-сервер ключевым словом autoincrement не является.

Одной командой - ALTER TABLE GMP ADD RowID int IDENTITY(1,1) NOT NULL PRIMARY KEY
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Kirill1983
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 05.05.2005 (Чт) 11:27

Сообщение Kirill1983 » 10.11.2005 (Чт) 18:58

GSerg прости за настырность и любознательность,а каким образом можно провести инвертную операцию?Например удалить тот же RowID из GMP?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 10.11.2005 (Чт) 19:00

Может, имеет смысл скачать SQL Server Books Online с майкрософта? Там всё написано...

ALTER TABLE GMP DROP COLUMN RowID
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Kirill1983
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 05.05.2005 (Чт) 11:27

Сообщение Kirill1983 » 10.11.2005 (Чт) 19:03

Благодарю за ответ :)

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 10.11.2005 (Чт) 22:08

Ужас. 27 постов вместо того, чтобы открыть Books Online и все прочесть...

Lenny
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 103
Зарегистрирован: 15.04.2005 (Пт) 20:06

Сообщение Lenny » 21.03.2006 (Вт) 17:24

Вопрос: Какой дата тип используется в SQLServer для boolean? В Acceess это YesNo, а в SQLServ.?

След.

Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList  
cron