Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.11;
Скачать: CL | DM;

Вниз

Если 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! не знаю правельно или нет...

Сейчас он у меня ругается
на не существующию таблицу хотя она существует :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-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;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.025 c
10-1101836168
Shopot
2004-11-30 20:36
2005.09.11
OLE. Создание отчета


14-1124434416
Jeer
2005-08-19 10:53
2005.09.11
Влияет ли фамилия на принципы ? :)


3-1122533289
ChI
2005-07-28 10:48
2005.09.11
поиск по индексным полям вTDBF


4-1121792397
NikotiN
2005-07-19 20:59
2005.09.11
как узнать имя открытого файла по его Handle?


14-1124218935
Defunct
2005-08-16 23:02
2005.09.11
"www.delphimaster.ru" и "delphimaster.ru"