Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
TopMop Member Откуда: Сообщений: 22 |
Здравствуйте. Столкнулся с такой проблемой, когда использую Create view почему то выскакивает ошибка Create table, объясните почему так произошло? |
24 мар 13, 17:39 [14089301] Ответить | Цитировать Сообщить модератору |
TopMop Member Откуда: Сообщений: 22 |
CREATE VIEW V1 AS SELECT * FROM Заказчики WHERE rating =(SELECT MAX (rating) FROM Заказчики); |
24 мар 13, 17:42 [14089311] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47051 |
TopMop, Это, небось, не единственная строка в скрипте, да? Перед этим есть CREATE TABLE? И, походу дела, проще так: CREATE VIEW V1 AS SELECT TOP(1) WITH TIES * FROM Заказчики ORDER BY rating DESC; |
24 мар 13, 18:47 [14089450] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47051 |
|
||
24 мар 13, 18:51 [14089463] Ответить | Цитировать Сообщить модератору |
TopMop Member Откуда: Сообщений: 22 |
Я разобрался. Спасибо вам за помощь. Вы бы не могли лучше посмотреть другой запрос как раз С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] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47051 |
TopMop, должно быть FOREIGN KEY [ИмяКонстрейнтаКруглыеСкобкиЗачем!!] REFERENCES Клиенты([Код клиента]),А уникальный индекс (или PK или UNIQUE) должен быть у поля в той таблице и у того поля, на который ссылка REFERENCES |
24 мар 13, 19:05 [14089498] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31783 |
|
||||
24 мар 13, 19:07 [14089501] Ответить | Цитировать Сообщить модератору |
TopMop Member Откуда: Сообщений: 22 |
Что писал раньше как раз и выдавал. Полная ошибка "Не обнаружен уникальный индекс для адресуемого поля главной таблицы" |
||||||
24 мар 13, 19:14 [14089521] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9636 |
TopMop, Что-то не похоже, что у вас MSSQL... |
24 мар 13, 19:20 [14089532] Ответить | Цитировать Сообщить модератору |
TopMop Member Откуда: Сообщений: 22 |
Вот это да...Ну все пока голова. Действительно перепутал топик. Прошу прощения, у меня Access( Извините еще раз. |
||
24 мар 13, 19:29 [14089557] Ответить | Цитировать Сообщить модератору |
TopMop Member Откуда: Сообщений: 22 |
А вы не знаете случаем в чем проблема мб в Access? |
||
24 мар 13, 19:31 [14089560] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47051 |
![]() Имя пишется после слова CONSTRAINT, если оно есть, после FOREIGN KEY в скобках перечисляются поля, которые ссылаются на поля таблицы, указанные после REFERENCES. Так что всё правильно. Но поля, на которые ссылается REFERENCES, должны быть в уникальном индексе - это, однако, факт. |
||
24 мар 13, 19:34 [14089565] Ответить | Цитировать Сообщить модератору |
TopMop Member Откуда: Сообщений: 22 |
Значит [Код клиента] и [Код сотрудника] должны быть ключевыми? |
||||
24 мар 13, 19:51 [14089593] Ответить | Цитировать Сообщить модератору |
TopMop Member Откуда: Сообщений: 22 |
Просто у меня [Код сотрудника] не ключевое поле. |
||||
24 мар 13, 19:53 [14089596] Ответить | Цитировать Сообщить модератору |
TopMop Member Откуда: Сообщений: 22 |
Сделал ключевым. Тоже самое. |
||||
24 мар 13, 20:05 [14089619] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9636 |
[Код сотрудника] должно быть ключевым или по нему должен быть уникальный индекс в таблице Заказы. |
24 мар 13, 20:21 [14089645] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |