![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Если CONSTRAINT аналог в MS-SQL SERVER(е)? [D6, MSSQL]
MS-REM © (2005-08-09 22:08:00)Что то пробываю её а она мне ошибку выдает что нет такой команды :(
Fay (2005-08-10 14:58:00) [1]:) Пора на пенсию :)
Так лучше :
Ты ссылаешься на ещё не сущеструющее поле (не указано - значит с тем же именем) ещё не созданной таблицы. Запятая перед REFERENCES не нужна.
:)
Fay (2005-08-10 14:56:00) [2]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нужна.
ANB (2005-08-10 07:06:00) [3]
> REFERENCES TABLE // А это с какой таблицай?
- с таблицей, которая уже создана. А у тебя она ниже создавалась.
> ON DELETE (Какие ещё можно?)
- вот это уже от сервера зависит.
sniknik (2005-08-10 01:48:00) [4]> Ладно объясните мне вот это как делается правельно
ну прям одолжение сделал, разрешил себя поучить... ;о)
Энциклопедия 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 диалекта, в книге и то что используеш. и все "попрет" ;о).
а заново писать тебе прям сдесь аналогичную книжку... смысла нет. смысл есть леч спать. ;)
MS-REM (2005-08-10 01:03:00) [5]Ладно объясните мне вот это как делается правельно
CONSTRAINT NAME // ну это я так понил имя связи?
FOREIGN KEY (COLUM) // это типа ЗАДАЕМ СВЯЗЬ?
REFERENCES TABLE // А это с какой таблицай?
ON DELETE (Какие ещё можно?)
И почему у меня не видет связаные таблица?
Автор: Дж. Грофф.
sniknik (2005-08-10 00:56:00) [6]> 4. Если ты весь этот пример сконопатил из книжки - выброси ее нафиг в печку.
ага, книжку нафиг, невзирая на название - "экзотический диалект sql - sql сервер зимбабве, племя мумба-юмба, первый опыт" ;о)), а для зимбабве это было бы самое то.
> ON DELETE SET NULL
есть в access (jet)
p.s. не гони на книгу сгоряча... ;о))
ANB (2005-08-10 00:30:00) [7]4. Если ты весь этот пример сконопатил из книжки - выброси ее нафиг в печку.
ЗЫ. Автор не Глушаков часом ?
ANB (2005-08-10 00:29:00) [8]1. С чего ты решил, что она есть ?
2. Ты будешь постить команды ?
3. Ты понимаешь, чего хочешь от MS SQL своими командами ?
MS-REM (2005-08-10 00:09:00) [9]Проверял QA :)
Карочи все эти ON DELETE SET NULL по ходу нет у MSSQL
я их ЗАМЕНИЛ на ON DELETE CASCADE! не знаю правельно или нет...
Сейчас он у меня ругается
на не существующию таблицу хотя она существует :0
Server: 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-09 23:32:00) [10]
> MS-REM (09.08.05 23:27) [13]
- нету у меня MS SQL. Слазь в справку и посмотри формат команды. Могу глянуть оракловый, но тебе это слабо поможет. Чем проверял ? Проверяй создание каждой таблицы по отдельности. И запости команду, на которую ругается.
MS-REM (2005-08-09 23:27:00) [11]В общем проверил все! Но оно сейчас ругается но одно!
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'.
MS-REM (2005-08-09 23:17:00) [12]Спсибо!
ANB (2005-08-09 23:10:00) [13]QA = Query Analyzer.
ANB (2005-08-09 23:09:00) [14]AQ = Query Analyzer. Входит в состав MS SQL Server. В него вводятся команды SQL и выполняются. Здесь у тебя пакет команд. Их можно (и нужно) сначала выполнить по отдельности. Потом отладить пакет, а уже потом обрамлять кавычками и пихать в дельфю. Ты учебники читал перед передиранием примера из книжки ?
MS-REM (2005-08-09 23:05:00) [15]ANB © (09.08.05 22:58) [6]
Убери кавычки
А как я их уберу если это DELPHI то есть выполняется
с помощью
CommandText :=
'CREATE TABLE CUSTOMERS '+
'( CUST_NUM INTEGER NOT NULL, '+
...
и ещё что значет QA?
и как понять по одной комдой?
ANB (2005-08-09 23:00:00) [16]И еще совет - не переписывай примеры из книжек. Лучше на соло позанимайся. Толку больше будет.
ANB (2005-08-09 22:59:00) [17]'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:58:00) [18]
> 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 ) '+
MS-REM (2005-08-09 22:50:00) [19]Это я с книги переписываю...
А как оно дожно быть правельным?
Вот карочий весь код.
'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:50:00) [20]ALTER TABLE Table1 ADD (
CONSTRAINT FK_Table1_Table2 FOREIGN KEY (FldTable1_Table2_ID)
REFERENCES Table2 (ID));
Примерный синтаксис.