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

Откуда:
Сообщений: 7
Здравствуйте. Имеется несколько таблиц, между которыми нужно создать связь. Создаю таблицы, связи между ними, заполняю данными, однако при подключении базы к Visual Studio связи между таблицами нет. Таблицы содержат в себе данные, однако никак не зависят друг от друга, в чем проблема?
P.S. просьба сильно не ругать, ибо совсем новичок, просто пробую разобраться.
Вот скриншот диаграммы, в таблицу адрес должна попадать информация из таблиц улица, субъект и населенный пункт.
Картинка с другого сайта.
7 май 16, 22:01    [19146702]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться со связями между таблицами  [new]
Toxo_toxo
Member

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


К сообщению приложен файл. Размер - 32Kb
7 май 16, 22:02    [19146708]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться со связями между таблицами  [new]
flexgen
Member

Откуда: Город на песке
Сообщений: 832
Toxo_toxo,

Чего я не понял как так нет связей если на диаграмме они есть? Можешь опубликовать скрипт создания таблиц включая констрейнты?
8 май 16, 00:01    [19147038]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться со связями между таблицами  [new]
Toxo_toxo
Member

Откуда:
Сообщений: 7
flexgen, не знаю, это ли вы у меня просите, но вот так выглядит связь

К сообщению приложен файл. Размер - 19Kb
8 май 16, 00:40    [19147153]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться со связями между таблицами  [new]
iljy
Member

Откуда:
Сообщений: 8711
Toxo_toxo,

от васпросят нажать на таблице правую кнопку и выбрать пункт "Создать сценарий для таблицы"
8 май 16, 12:21    [19147659]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться со связями между таблицами  [new]
Toxo_toxo
Member

Откуда:
Сообщений: 7
flexgen,

USE [OOO_ARTPOL]
GO

/****** Object: Table [dbo].[Adress] Script Date: 08.05.2016 19:31:55 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Adress](
[kodaadress] [int] IDENTITY(1,1) NOT NULL,
[indecs] [int] NULL,
[korpus] [int] NULL,
[nomerdoma] [int] NULL,
[kodsubjecta] [int] NULL,
[kodstreet] [int] NULL,
[kodnaspunkt] [int] NULL,
CONSTRAINT [PK_Adress] PRIMARY KEY CLUSTERED
(
[kodaadress] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

ALTER TABLE [dbo].[Adress] WITH CHECK ADD CONSTRAINT [FK_Adress_Naspunkt] FOREIGN KEY([kodnaspunkt])
REFERENCES [dbo].[Naspunkt] ([kod])
ON UPDATE CASCADE
ON DELETE CASCADE
GO

ALTER TABLE [dbo].[Adress] CHECK CONSTRAINT [FK_Adress_Naspunkt]
GO

ALTER TABLE [dbo].[Adress] WITH CHECK ADD CONSTRAINT [FK_Adress_Street] FOREIGN KEY([kodstreet])
REFERENCES [dbo].[Street] ([kod])
ON UPDATE CASCADE
ON DELETE CASCADE
GO

ALTER TABLE [dbo].[Adress] CHECK CONSTRAINT [FK_Adress_Street]
GO

ALTER TABLE [dbo].[Adress] WITH CHECK ADD CONSTRAINT [FK_Adress_Subject] FOREIGN KEY([kodsubjecta])
REFERENCES [dbo].[Subject] ([kod])
ON UPDATE CASCADE
ON DELETE CASCADE
GO

ALTER TABLE [dbo].[Adress] CHECK CONSTRAINT [FK_Adress_Subject]
GO
8 май 16, 18:32    [19148226]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться со связями между таблицами  [new]
iljy
Member

Откуда:
Сообщений: 8711
Toxo_toxo,

у вас 3 внешних ключа, какие вам еще нужны связи?
8 май 16, 21:32    [19148488]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться со связями между таблицами  [new]
Toxo_toxo
Member

Откуда:
Сообщений: 7
iljy,

Мне нужно чтобы в таблице адрес содержались данные о улице, населенном пункте и субъекте, но у меня так не работает
8 май 16, 22:04    [19148573]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться со связями между таблицами  [new]
iljy
Member

Откуда:
Сообщений: 8711
Toxo_toxo,

а вы какой смысл вкладываете во фразу "нужно чтобы в таблице содержались данные"? У вас в таблице адрес есть 3 FK: на населенный пункт, улицу и субъект, но в вашем понимании это не означает, что данные в таблице содержатся?
8 май 16, 22:07    [19148579]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться со связями между таблицами  [new]
Toxo_toxo
Member

Откуда:
Сообщений: 7
iljy,

Я понимаю, что они там содержаться, но и Вы поймите, что я при добавлении таблицы адрес в Visual Studio, не могу получить из нее информацию о субъекте, улице и населенном пункте. Таблицы ведут себя так, будто между ними нет связи
8 май 16, 22:10    [19148593]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться со связями между таблицами  [new]
invm
Member

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

Вы думаете, что "связав" Adress и Naspunkt вы автоматом получите столбец name из Naspunkt в Adress?

Это не так. То что вы называете "связь" на самом деле называется "ограничение внешнего ключа" и предназначено оно для контроля целостности данных.
Что бы получить желаемое вам нужно написать запрос, соединив в нем все четыре таблицы по соответствующим столбцам.
8 май 16, 22:25    [19148645]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться со связями между таблицами  [new]
Toxo_toxo
Member

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

Можно поподробнее или ссылку на ресурс, где описано, как это сделать?
8 май 16, 22:44    [19148692]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться со связями между таблицами  [new]
Mike_za
Member

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

Это вам в форум клиентского приложения.
8 май 16, 23:01    [19148731]     Ответить | Цитировать Сообщить модератору
 Re: Помогите разобраться со связями между таблицами  [new]
invm
Member

Откуда: Москва
Сообщений: 9646
Toxo_toxo
Можно поподробнее или ссылку на ресурс, где описано, как это сделать?
Берете любой понравившейся учебник по написанию SQL-запросов.
8 май 16, 23:10    [19148747]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить