Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Ошибка синтаксиса  [new]
TopMop
Member

Откуда:
Сообщений: 22
Здравствуйте. Столкнулся с такой проблемой, когда использую Create view почему то выскакивает ошибка Create table, объясните почему так произошло?
24 мар 13, 17:39    [14089301]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка синтаксиса  [new]
TopMop
Member

Откуда:
Сообщений: 22
CREATE VIEW V1 AS SELECT * FROM Заказчики WHERE rating =(SELECT MAX (rating) FROM Заказчики);
24 мар 13, 17:42    [14089311]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка синтаксиса  [new]
iap
Member

Откуда: Москва
Сообщений: 47194
TopMop,

Это, небось, не единственная строка в скрипте, да?
Перед этим есть CREATE TABLE?

И, походу дела, проще так:
CREATE VIEW V1 AS SELECT TOP(1) WITH TIES * FROM Заказчики ORDER BY rating DESC;
24 мар 13, 18:47    [14089450]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка синтаксиса  [new]
iap
Member

Откуда: Москва
Сообщений: 47194
iap
Перед этим есть CREATE TABLE?
Или после?
24 мар 13, 18:51    [14089463]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка синтаксиса  [new]
TopMop
Member

Откуда:
Сообщений: 22
iap
TopMop,

Это, небось, не единственная строка в скрипте, да?
Перед этим есть CREATE TABLE?

И, походу дела, проще так:
CREATE VIEW V1 AS SELECT TOP(1) WITH TIES * FROM Заказчики ORDER BY rating DESC;

Я разобрался. Спасибо вам за помощь.
Вы бы не могли лучше посмотреть другой запрос как раз СREATE TABLE
CREATE TABLE Адресаты (
[Код клиента] integer NOT NULL PRIMARY KEY, 
СрЧисЗак integer, 
[Код сотрудника] integer, 
[Код заказа] integer , 
Адрес char (10), 
FOREIGN KEY ([Код клиента]) REFERENCES Клиенты ([Код клиента]), 
FOREIGN KEY ([Код сотрудника]) REFERENCES Заказы ([Код сотрудника]));

Выдает ошибку:
Запрос должен содержать хотя бы 1 поле для вывода.
писал еще так
CREATE TABLE Cityorders (
[Код клиента] integer NOT NULL constraint кк1 PRIMARY KEY, 
СрЧисЗак integer, 
[Код сотрудника] integer, 
[Код заказа] integer , 
Адрес char (10), 
FOREIGN KEY ([Код клиента]) REFERENCES Клиенты ([Код клиента]), 
FOREIGN KEY ([Код сотрудника]) REFERENCES Заказы ([Код сотрудника]));

Выдает ошибку:
Не обнаружен уникальный индекс.
24 мар 13, 18:56    [14089477]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка синтаксиса  [new]
iap
Member

Откуда: Москва
Сообщений: 47194
TopMop,

должно быть
FOREIGN KEY [ИмяКонстрейнтаКруглыеСкобкиЗачем!!] REFERENCES Клиенты([Код клиента]),
А уникальный индекс (или PK или UNIQUE)
должен быть у поля в той таблице и у того поля, на который ссылка REFERENCES
24 мар 13, 19:05    [14089498]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка синтаксиса  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 32168
TopMop
Выдает ошибку:
Запрос должен содержать хотя бы 1 поле для вывода.
Этот запрос не может выдавать такую ошибку

TopMop
Выдает ошибку:
Не обнаружен уникальный индекс.
Думаю, там в ошибке ещё есть текст.
24 мар 13, 19:07    [14089501]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка синтаксиса  [new]
TopMop
Member

Откуда:
Сообщений: 22
alexeyvg
TopMop
Выдает ошибку:
Запрос должен содержать хотя бы 1 поле для вывода.
Этот запрос не может выдавать такую ошибку

TopMop
Выдает ошибку:
Не обнаружен уникальный индекс.
Думаю, там в ошибке ещё есть текст.

Что писал раньше как раз и выдавал.

Полная ошибка "Не обнаружен уникальный индекс для адресуемого поля главной таблицы"
24 мар 13, 19:14    [14089521]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка синтаксиса  [new]
invm
Member

Откуда: Москва
Сообщений: 9913
TopMop,

Что-то не похоже, что у вас MSSQL...
24 мар 13, 19:20    [14089532]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка синтаксиса  [new]
TopMop
Member

Откуда:
Сообщений: 22
invm
TopMop,

Что-то не похоже, что у вас MSSQL...

Вот это да...Ну все пока голова. Действительно перепутал топик. Прошу прощения, у меня Access(
Извините еще раз.
24 мар 13, 19:29    [14089557]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка синтаксиса  [new]
TopMop
Member

Откуда:
Сообщений: 22
invm
TopMop,

Что-то не похоже, что у вас MSSQL...

А вы не знаете случаем в чем проблема мб в Access?
24 мар 13, 19:31    [14089560]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка синтаксиса  [new]
iap
Member

Откуда: Москва
Сообщений: 47194
iap
TopMop,

должно быть
FOREIGN KEY [ИмяКонстрейнтаКруглыеСкобкиЗачем!!] REFERENCES Клиенты([Код клиента]),
А уникальный индекс (или PK или UNIQUE)
должен быть у поля в той таблице и у того поля, на который ссылка REFERENCES
Какую-то глупость про имя констрейнта написал - прошу срочно это забыть.

Имя пишется после слова CONSTRAINT, если оно есть, после FOREIGN KEY в скобках перечисляются поля,
которые ссылаются на поля таблицы, указанные после REFERENCES.
Так что всё правильно.

Но поля, на которые ссылается REFERENCES, должны быть в уникальном индексе - это, однако, факт.
24 мар 13, 19:34    [14089565]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка синтаксиса  [new]
TopMop
Member

Откуда:
Сообщений: 22
iap
iap
TopMop,

должно быть
FOREIGN KEY [ИмяКонстрейнтаКруглыеСкобкиЗачем!!] REFERENCES Клиенты([Код клиента]),
А уникальный индекс (или PK или UNIQUE)
должен быть у поля в той таблице и у того поля, на который ссылка REFERENCES
Какую-то глупость про имя констрейнта написал - прошу срочно это забыть.

Имя пишется после слова CONSTRAINT, если оно есть, после FOREIGN KEY в скобках перечисляются поля,
которые ссылаются на поля таблицы, указанные после REFERENCES.
Так что всё правильно.

Но поля, на которые ссылается REFERENCES, должны быть в уникальном индексе - это, однако, факт.

Значит [Код клиента] и [Код сотрудника] должны быть ключевыми?
24 мар 13, 19:51    [14089593]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка синтаксиса  [new]
TopMop
Member

Откуда:
Сообщений: 22
TopMop
iap
пропущено...
Какую-то глупость про имя констрейнта написал - прошу срочно это забыть.

Имя пишется после слова CONSTRAINT, если оно есть, после FOREIGN KEY в скобках перечисляются поля,
которые ссылаются на поля таблицы, указанные после REFERENCES.
Так что всё правильно.

Но поля, на которые ссылается REFERENCES, должны быть в уникальном индексе - это, однако, факт.

Значит [Код клиента] и [Код сотрудника] должны быть ключевыми?

Просто у меня [Код сотрудника] не ключевое поле.
24 мар 13, 19:53    [14089596]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка синтаксиса  [new]
TopMop
Member

Откуда:
Сообщений: 22
TopMop
TopMop
пропущено...

Значит [Код клиента] и [Код сотрудника] должны быть ключевыми?

Просто у меня [Код сотрудника] не ключевое поле.

Сделал ключевым. Тоже самое.
24 мар 13, 20:05    [14089619]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка синтаксиса  [new]
invm
Member

Откуда: Москва
Сообщений: 9913
[Код сотрудника] должно быть ключевым или по нему должен быть уникальный индекс в таблице Заказы.
24 мар 13, 20:21    [14089645]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить