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

Откуда:
Сообщений: 23
Помогите пожалуйста. Нужно создать связи между таблицами «Организации» и «Клиенты», «Организации» и «Платежи», «Заказы» и «Платежи»

Как это можно сделать с помощью команд а не редактора? Заранее спасибо

К сообщению приложен файл. Размер - 41Kb
13 фев 14, 03:37    [15560303]     Ответить | Цитировать Сообщить модератору
 Re: Связывание 2 таблиц  [new]
BraZers
Member

Откуда:
Сообщений: 23
После добавления команд на связи, должно будет получиться такая таблица

К сообщению приложен файл. Размер - 38Kb
13 фев 14, 03:40    [15560305]     Ответить | Цитировать Сообщить модератору
 Re: Связывание 2 таблиц  [new]
Crimzic
Member

Откуда: Sydney
Сообщений: 59
hi BraZers,

А вы добавьте связь в редакторе, а потом нажмите кнопку "Generate Change Script" на тулбаре. Тогда вы увидите, какие команды Management Studio сгенерирует для этого изменения.

К сообщению приложен файл. Размер - 10Kb
13 фев 14, 04:10    [15560309]     Ответить | Цитировать Сообщить модератору
 Re: Связывание 2 таблиц  [new]
Crimzic
Member

Откуда: Sydney
Сообщений: 59
BraZers,

А если "руками", то что-то вроде
ALTER TABLE Clients ADD CONSTRAINT FK_Clients_Orgs FOREIGN KEY (OrgId) REFERENCES Orgs (OrgId)

Документация:
http://technet.microsoft.com/en-us/library/ms190273(v=sql.100).aspx
13 фев 14, 04:12    [15560310]     Ответить | Цитировать Сообщить модератору
 Re: Связывание 2 таблиц  [new]
BraZers
Member

Откуда:
Сообщений: 23
Благодарю. Всё прекрасно работает.
13 фев 14, 04:18    [15560311]     Ответить | Цитировать Сообщить модератору
 Re: Связывание 2 таблиц  [new]
BraZers
Member

Откуда:
Сообщений: 23
Т.е. Clients это есть имя первой(дочерней) таблицы?
13 фев 14, 04:20    [15560312]     Ответить | Цитировать Сообщить модератору
 Re: Связывание 2 таблиц  [new]
Crimzic
Member

Откуда: Sydney
Сообщений: 59
BraZers
Т.е. Clients это есть имя первой(дочерней) таблицы?

Да.
13 фев 14, 04:26    [15560313]     Ответить | Цитировать Сообщить модератору
 Re: Связывание 2 таблиц  [new]
BraZers
Member

Откуда:
Сообщений: 23
Ещё один маленький вопрос. В этой строчке вроде как устанавливается связь только между таблицами Клиенты и Организации, а после выполнения выполнения добавились все 3 нудные связи. Что-то я не пойму(
13 фев 14, 04:31    [15560314]     Ответить | Цитировать Сообщить модератору
 Re: Связывание 2 таблиц  [new]
Crimzic
Member

Откуда: Sydney
Сообщений: 59
А как вы определили что добавились три связи?
Может вы на самом деле сохранили все их?
13 фев 14, 09:19    [15560614]     Ответить | Цитировать Сообщить модератору
 Re: Связывание 2 таблиц  [new]
BraZers
Member

Откуда:
Сообщений: 23
Создал по новой БД, и команда почему то не работает. Выдаёт следующую ошибку:
В чём тут проблема? Голову уже сломал

К сообщению приложен файл. Размер - 68Kb
13 фев 14, 13:14    [15562405]     Ответить | Цитировать Сообщить модератору
 Re: Связывание 2 таблиц  [new]
BraZers
Member

Откуда:
Сообщений: 23
вот ошибка:

К сообщению приложен файл. Размер - 10Kb
13 фев 14, 13:16    [15562419]     Ответить | Цитировать Сообщить модератору
 Re: Связывание 2 таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104751
BraZers
Выдаёт следующую ошибку:
В чём тут проблема? Голову уже сломал

Странная какая то ошибка -"В чём тут проблема? Голову уже сломал"
13 фев 14, 13:19    [15562446]     Ответить | Цитировать Сообщить модератору
 Re: Связывание 2 таблиц  [new]
BraZers
Member

Откуда:
Сообщений: 23
Ошибка:
Сообщение 1769, уровень 16, состояние 1, строка 1
Внешний ключ "FK_Клиенты_Организации" указывает на недопустимый столбец "ОрганизацииId" в ссылающейся таблице "Клиенты".
Сообщение 1750, уровень 16, состояние 0, строка 1
Нельзя создать ограничение. См. предыдущие ошибки.
13 фев 14, 13:22    [15562481]     Ответить | Цитировать Сообщить модератору
 Re: Связывание 2 таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104751
BraZers
Ошибка:
Сообщение 1769, уровень 16, состояние 1, строка 1
Внешний ключ "FK_Клиенты_Организации" указывает на недопустимый столбец "ОрганизацииId" в ссылающейся таблице "Клиенты".
Сообщение 1750, уровень 16, состояние 0, строка 1
Нельзя создать ограничение. См. предыдущие ошибки.

И где найти определение таблицы "Клиенты" ? Чтобы установить в ней наличие поля "ОрганизацииId" ?
13 фев 14, 13:24    [15562496]     Ответить | Цитировать Сообщить модератору
 Re: Связывание 2 таблиц  [new]
BraZers
Member

Откуда:
Сообщений: 23
вот:

К сообщению приложен файл. Размер - 65Kb
13 фев 14, 13:28    [15562526]     Ответить | Цитировать Сообщить модератору
 Re: Связывание 2 таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104751
BraZers
вот:

И где вы видите в таблице "Клиенты" поле "ОрганизацииId" ?
13 фев 14, 13:30    [15562537]     Ответить | Цитировать Сообщить модератору
 Re: Связывание 2 таблиц  [new]
BraZers
Member

Откуда:
Сообщений: 23
Я балбес, разобрался. Просто не так команду записал
13 фев 14, 13:31    [15562542]     Ответить | Цитировать Сообщить модератору
 Re: Связывание 2 таблиц  [new]
BraZers
Member

Откуда:
Сообщений: 23
ALTER TABLE Клиенты ADD CONSTRAINT FK_Клиенты_Организации FOREIGN KEY (КлиентId) REFERENCES Организации (ОрганизацииId)


Вот так правильно будет?
13 фев 14, 13:32    [15562549]     Ответить | Цитировать Сообщить модератору
 Re: Связывание 2 таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104751
BraZers
ALTER TABLE Клиенты ADD CONSTRAINT FK_Клиенты_Организации FOREIGN KEY (КлиентId) REFERENCES Организации (ОрганизацииId)



Вот так правильно будет?

Вам виднее по каким полям вы строите связи
13 фев 14, 13:36    [15562586]     Ответить | Цитировать Сообщить модератору
 Re: Связывание 2 таблиц  [new]
BraZers
Member

Откуда:
Сообщений: 23
Нужно построить связь между полями КлиентID таблицы Клиенты и ОрганизацииID таблицы организации. Выполнение успешно, однако никакой связи почему то нету(
13 фев 14, 13:38    [15562595]     Ответить | Цитировать Сообщить модератору
 Re: Связывание 2 таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104751
BraZers
Выполнение успешно, однако никакой связи почему то нету(

А где вы ее ищите ?
13 фев 14, 13:39    [15562601]     Ответить | Цитировать Сообщить модератору
 Re: Связывание 2 таблиц  [new]
BraZers
Member

Откуда:
Сообщений: 23
На диаграмме
13 фев 14, 13:40    [15562615]     Ответить | Цитировать Сообщить модератору
 Re: Связывание 2 таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104751
BraZers
На диаграмме

А линия с ключом и знаком бесконечности между объектами Клиенты и Организации разве не то, что вы ищите ?
13 фев 14, 13:43    [15562641]     Ответить | Цитировать Сообщить модератору
 Re: Связывание 2 таблиц  [new]
BraZers
Member

Откуда:
Сообщений: 23
Да, но её почему то там нету...(
13 фев 14, 13:44    [15562650]     Ответить | Цитировать Сообщить модератору
 Re: Связывание 2 таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104751
BraZers
Да, но её почему то там нету...(

А на картинке тогда что ? Глюк ?
13 фев 14, 13:45    [15562662]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить