Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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! не знаю правельно или нет...

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

Наверх





Память: 0.52 MB
Время: 0.013 c
6-1112695681
Ragazor
2005-04-05 14:08
2005.09.11
CGI &amp; IIS6.0


14-1124332389
Думкин
2005-08-18 06:33
2005.09.11
18 августа. С днем рождения!


8-1114430617
Ibrox
2005-04-25 16:03
2005.09.11
RLE компрессия в TGA


1-1124717155
DVM
2005-08-22 17:25
2005.09.11
Массив of Char в строку способы


1-1124638069
Артём
2005-08-21 19:27
2005.09.11
TTreeView





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский