Форум: "Начинающим";
Текущий архив: 2005.09.11;
Скачать: [xml.tar.bz2];
ВнизЕсли CONSTRAINT аналог в MS-SQL SERVER(е)? Найти похожие ветки
← →
MS-REM (2005-08-09 22:08) [0]Что то пробываю её а она мне ошибку выдает что нет такой команды :(
← →
ANB © (2005-08-09 22:11) [1]Есть. И не аналог - а нормальная стандартная команда. Смотри хелп. И запости, на какую команду ругается.
← →
MS-REM (2005-08-09 22:33) [2]В общем пишу так:
"CONSTRAINT HASREP "+
"FOREIGN KEY (CUST_REP) "+
А отвечатет так:
Incorrect syntax near the keyword "CONSTRAINT"
← →
ANB © (2005-08-09 22:45) [3]
> MS-REM (09.08.05 22:33) [2]
- а где ты видел такую команду ? Писал же уже - сначала отладся в QA, потом пихай строку в делфю.
← →
ANB © (2005-08-09 22:50) [4]ALTER TABLE Table1 ADD (
CONSTRAINT FK_Table1_Table2 FOREIGN KEY (FldTable1_Table2_ID)
REFERENCES Table2 (ID));
Примерный синтаксис.
← →
MS-REM (2005-08-09 22:50) [5]Это я с книги переписываю...
А как оно дожно быть правельным?
Вот карочий весь код."CREATE TABLE CUSTOMERS "+
"( CUST_NUM INTEGER NOT NULL, "+
"COMPANY VARCHAR(20) NOT NULL, "+
"CUST_REP INTEGER, "+
"CREDIT_LIMIT MONEY, "+
"PRIMARY KEY (CUST_NUM) "+
"CONSTRAINT HASREP "+
"FOREIGN KEY (CUST_REP) "+
"REFERENCES SALESREPS "+
"ON DELETE SET NULL ) "+
"CREATE TABLE SALESREPS "+
"( EMPL_NUM INTEGER NOT NULL, "+
"NAME VARCHAR(15) NOT NULL, "+
"AGE INTEGER, "+
"TITLE VARCHAR(10), "+
"HIRE_DATE DATE NOT NULL, "+
"MANAGER INTEGER, "+
"QUOTA MONEY, "+
"SALES MONEY NOT NULL, "+
"PRIMARY KEY (EMPL_NUM), "+
"FOREIGN KEY (MANAGER), "+
"REFERENCES SALESREPS, "+
"ON DELETE SET NULL, "+
"CONSTRAINT WORKSIN "+
"FOREIGN KEY (REP_OFFICE), "+
"REFERENCES OFFICES "+
"ON DELETE SET NULL ) "+
" CREATE TABLE OFFICES "+
"( OFFICE INTEGER NOT NULL, "+
"CITY VARCHAR(15) NOT NULL, "+
"REGION VARCHAR(10) NOT NULL, "+
"MGR INTEGER, "+
"TARGET MONEY, "+
"SALES MONEY NOT NULL, "+
"PRIMARY KEY (OFFICE), "+
"CONSTRAINT HASMGR "+
"FOREIGN KEY (MGR) "+
"REFERENCES SALESREPS "+
"ON DELETE SET NULL ) "+
"CREATE TABLE ORDERS "+
"( ORDER_NUM INTEGER NOT NULL, "+
"ORDER_DATE DATE NOT NULL, "+
"CUST INTEGER NOT NULL, "+
"REP INTEGER, "+
"MFR CHAR(3) NOT NULL, "+
"PRODUCT CHAR(5) NOT NULL, "+
"QTY INTEGER NOT NULL, "+
"AMOUNT MONEY NOT NULL, "+
"PRIMARY KEY (ORDER_NUM), "+
"CONSTRAINT PLACEDBY "+
"FOREIGN KEY (CUST) "+
"REFERENCES CUSTOMERS "+
"ON DELETE CASCADE, "+
"CONSTRAINT TAKENBY "+
"FOREIGN KEY (REP) "+
"REFERENCES SALESREPS "+
"ON DELETE SET NULL, "+
"CONSTRAINT ISFOR "+
"FOREIGN KEY (MFR, PRODUCT), "+
"REFERENCES PRODUCTS "+
"ON DELETE REYTRICT ) "+
"CREATE TABLE PRODUCTS"+
"( MFR_ID CHAR(3) NOT NULL, "+
"PRODUCT_ID CHAR(5) NOT NULL, "+
"DESCRIPTION VARCHAR(20) NOT NULL, "+
"PRICE MONEY NOT NULL, "+
"QTY_ON_HAND INTEGER NOT NULL, "+
"PRIMARY KEY (MFR_ID, PRODUCT_ID) ) " ;
Если знаешь подскажи.
← →
ANB © (2005-08-09 22:58) [6]
> MS-REM (09.08.05 22:50) [5]
- либо в книге косяк, либо перепечатал неверно. Убери кавычки и выполняй команды по одной в QA, пока они не станут правильными.
А вот здесь у тебя явная ошибка :
> "CREATE TABLE CUSTOMERS "+
> "( CUST_NUM INTEGER NOT NULL, "+
> "COMPANY VARCHAR(20) NOT NULL, "+
> "CUST_REP INTEGER, "+
> "CREDIT_LIMIT MONEY, "+
> "PRIMARY KEY (CUST_NUM) "+ <<< --- где то здесь не хватает запятой
> "CONSTRAINT HASREP "+
> "FOREIGN KEY (CUST_REP) "+
> "REFERENCES SALESREPS "+
> "ON DELETE SET NULL ) "+
← →
ANB © (2005-08-09 22:59) [7]"CREATE TABLE CUSTOMERS "+
"( CUST_NUM INTEGER NOT NULL, "+
"COMPANY VARCHAR(20) NOT NULL, "+
"CUST_REP INTEGER, "+
"CREDIT_LIMIT MONEY, "+
"PRIMARY KEY (CUST_NUM), "+
"CONSTRAINT HASREP "+
"FOREIGN KEY (CUST_REP) "+
"REFERENCES SALESREPS "+
"ON DELETE SET NULL ) "+
← →
ANB © (2005-08-09 23:00) [8]И еще совет - не переписывай примеры из книжек. Лучше на соло позанимайся. Толку больше будет.
← →
MS-REM (2005-08-09 23:05) [9]ANB © (09.08.05 22:58) [6]
Убери кавычки
А как я их уберу если это DELPHI то есть выполняется
с помощьюCommandText :=
"CREATE TABLE CUSTOMERS "+
"( CUST_NUM INTEGER NOT NULL, "+
...
и ещё что значет QA?
и как понять по одной комдой?
← →
ANB © (2005-08-09 23:09) [10]AQ = Query Analyzer. Входит в состав MS SQL Server. В него вводятся команды SQL и выполняются. Здесь у тебя пакет команд. Их можно (и нужно) сначала выполнить по отдельности. Потом отладить пакет, а уже потом обрамлять кавычками и пихать в дельфю. Ты учебники читал перед передиранием примера из книжки ?
← →
ANB © (2005-08-09 23:10) [11]QA = Query Analyzer.
← →
MS-REM (2005-08-09 23:17) [12]Спсибо!
← →
MS-REM (2005-08-09 23:27) [13]В общем проверил все! Но оно сейчас ругается но одно!
ON DELETE SET NULL
вот список ошибокServer: Msg 156, Level 15, State 1, Line 10
Incorrect syntax near the keyword "SET".
Server: Msg 156, Level 15, State 1, Line 24
Incorrect syntax near the keyword "ON".
Server: Msg 156, Level 15, State 1, Line 41
Incorrect syntax near the keyword "SET".
Server: Msg 156, Level 15, State 1, Line 60
Incorrect syntax near the keyword "SET".
← →
ANB © (2005-08-09 23:32) [14]
> MS-REM (09.08.05 23:27) [13]
- нету у меня MS SQL. Слазь в справку и посмотри формат команды. Могу глянуть оракловый, но тебе это слабо поможет. Чем проверял ? Проверяй создание каждой таблицы по отдельности. И запости команду, на которую ругается.
← →
MS-REM (2005-08-10 00:09) [15]Проверял QA :)
Карочи все эти ON DELETE SET NULL по ходу нет у MSSQL
я их ЗАМЕНИЛ на ON DELETE CASCADE! не знаю правельно или нет...
Сейчас он у меня ругается
на не существующию таблицу хотя она существует :0Server: Msg 1767, Level 16, State 1, Line 1
Foreign key "HASREP" references invalid table "SALESREPS".
Server: Msg 1750, Level 16, State 1, Line 1
Could not create constraint. See previous errors.
← →
ANB © (2005-08-10 00:29) [16]1. С чего ты решил, что она есть ?
2. Ты будешь постить команды ?
3. Ты понимаешь, чего хочешь от MS SQL своими командами ?
← →
ANB © (2005-08-10 00:30) [17]4. Если ты весь этот пример сконопатил из книжки - выброси ее нафиг в печку.
ЗЫ. Автор не Глушаков часом ?
← →
sniknik © (2005-08-10 00:56) [18]> 4. Если ты весь этот пример сконопатил из книжки - выброси ее нафиг в печку.
ага, книжку нафиг, невзирая на название - "экзотический диалект sql - sql сервер зимбабве, племя мумба-юмба, первый опыт" ;о)), а для зимбабве это было бы самое то.
> ON DELETE SET NULL
есть в access (jet)
p.s. не гони на книгу сгоряча... ;о))
← →
MS-REM (2005-08-10 01:03) [19]Ладно объясните мне вот это как делается правельно
CONSTRAINT NAME // ну это я так понил имя связи?
FOREIGN KEY (COLUM) // это типа ЗАДАЕМ СВЯЗЬ?
REFERENCES TABLE // А это с какой таблицай?
ON DELETE (Какие ещё можно?)
И почему у меня не видет связаные таблица?
Автор: Дж. Грофф.
← →
sniknik © (2005-08-10 01:48) [20]> Ладно объясните мне вот это как делается правельно
ну прям одолжение сделал, разрешил себя поучить... ;о)
Энциклопедия SQL (+CD)
Грофф Дж., Вайнберг П.
Перед вами — новое издание наиболее полного руководства по использованию структурированного языка запросов SQL, применяемого для работы с базами данных. В книге подробно описываются возможности SQL, реализованные в самых распространенных СУБД и определенные в стандарте ANSI/ISO для SQL. В ней вы найдете подробную информацию, касающуюся применения инструкций для работы с базами данных, стандартов SQL, а также популярных API-интерфейсов, служащих для доступа к таким базам данных, как ODBC, SQL/CLI, JDBC и OCI. Большое внимание уделяется вопросам безопасности данных, влиянию объектных технологий на SQL и интеграции SQL с XML. На прилагающемся компакт-диске содержатся дистрибутивы трех СУБД: SQL Server 2000, IBM DB2 и MySQL. Книга предназначена для всех пользователей, интересующихся языком запросов SQL.
заметь - "базами", "стандартов" (во множественном числе!)...
когда примеры переписываеш, внимательнее, переписывай для одной и той же базы и sql диалекта, в книге и то что используеш. и все "попрет" ;о).
а заново писать тебе прям сдесь аналогичную книжку... смысла нет. смысл есть леч спать. ;)
← →
ANB © (2005-08-10 07:06) [21]
> REFERENCES TABLE // А это с какой таблицай?
- с таблицей, которая уже создана. А у тебя она ниже создавалась.
> ON DELETE (Какие ещё можно?)
- вот это уже от сервера зависит.
← →
Fay © (2005-08-10 14:56) [22]2 MS-REM (10.08.05 1:03) [19]
1) "Понил", "правельно", "видет"... Учи русский
2) К [4] -CREATE TABLE SALESREPS
...
FOREIGN KEY (REP_OFFICE),
REFERENCES OFFICES
ON DELETE SET NULL
Ты ссылаешься на ещё не несущеструющее поле (не указано - значит с тем же именем) ещё не созданной таблицы. Запятая не передREFERENCES
нужна.
← →
Fay © (2005-08-10 14:58) [23]:) Пора на пенсию :)
Так лучше :
Ты ссылаешься на ещё не сущеструющее поле (не указано - значит с тем же именем) ещё не созданной таблицы. Запятая перед REFERENCES не нужна.
:)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2005.09.11;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.012 c