Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Toxo_toxo Member Откуда: Сообщений: 7 |
Здравствуйте. Имеется несколько таблиц, между которыми нужно создать связь. Создаю таблицы, связи между ними, заполняю данными, однако при подключении базы к Visual Studio связи между таблицами нет. Таблицы содержат в себе данные, однако никак не зависят друг от друга, в чем проблема? P.S. просьба сильно не ругать, ибо совсем новичок, просто пробую разобраться. Вот скриншот диаграммы, в таблицу адрес должна попадать информация из таблиц улица, субъект и населенный пункт. |
7 май 16, 22:01 [19146702] Ответить | Цитировать Сообщить модератору |
Toxo_toxo Member Откуда: Сообщений: 7 |
К сообщению приложен файл. Размер - 32Kb |
7 май 16, 22:02 [19146708] Ответить | Цитировать Сообщить модератору |
flexgen Member Откуда: Город на песке Сообщений: 832 |
Toxo_toxo, Чего я не понял как так нет связей если на диаграмме они есть? Можешь опубликовать скрипт создания таблиц включая констрейнты? |
8 май 16, 00:01 [19147038] Ответить | Цитировать Сообщить модератору |
Toxo_toxo Member Откуда: Сообщений: 7 |
flexgen, не знаю, это ли вы у меня просите, но вот так выглядит связь К сообщению приложен файл. Размер - 19Kb |
8 май 16, 00:40 [19147153] Ответить | Цитировать Сообщить модератору |
iljy Member Откуда: Сообщений: 8711 |
Toxo_toxo, от васпросят нажать на таблице правую кнопку и выбрать пункт "Создать сценарий для таблицы" |
8 май 16, 12:21 [19147659] Ответить | Цитировать Сообщить модератору |
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] Ответить | Цитировать Сообщить модератору |
iljy Member Откуда: Сообщений: 8711 |
Toxo_toxo, у вас 3 внешних ключа, какие вам еще нужны связи? |
8 май 16, 21:32 [19148488] Ответить | Цитировать Сообщить модератору |
Toxo_toxo Member Откуда: Сообщений: 7 |
iljy, Мне нужно чтобы в таблице адрес содержались данные о улице, населенном пункте и субъекте, но у меня так не работает |
8 май 16, 22:04 [19148573] Ответить | Цитировать Сообщить модератору |
iljy Member Откуда: Сообщений: 8711 |
Toxo_toxo, а вы какой смысл вкладываете во фразу "нужно чтобы в таблице содержались данные"? У вас в таблице адрес есть 3 FK: на населенный пункт, улицу и субъект, но в вашем понимании это не означает, что данные в таблице содержатся? |
8 май 16, 22:07 [19148579] Ответить | Цитировать Сообщить модератору |
Toxo_toxo Member Откуда: Сообщений: 7 |
iljy, Я понимаю, что они там содержаться, но и Вы поймите, что я при добавлении таблицы адрес в Visual Studio, не могу получить из нее информацию о субъекте, улице и населенном пункте. Таблицы ведут себя так, будто между ними нет связи |
8 май 16, 22:10 [19148593] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9646 |
Toxo_toxo, Вы думаете, что "связав" Adress и Naspunkt вы автоматом получите столбец name из Naspunkt в Adress? Это не так. То что вы называете "связь" на самом деле называется "ограничение внешнего ключа" и предназначено оно для контроля целостности данных. Что бы получить желаемое вам нужно написать запрос, соединив в нем все четыре таблицы по соответствующим столбцам. |
8 май 16, 22:25 [19148645] Ответить | Цитировать Сообщить модератору |
Toxo_toxo Member Откуда: Сообщений: 7 |
invm, Можно поподробнее или ссылку на ресурс, где описано, как это сделать? |
8 май 16, 22:44 [19148692] Ответить | Цитировать Сообщить модератору |
Mike_za Member Откуда: Москва Сообщений: 1176 |
Toxo_toxo, Это вам в форум клиентского приложения. |
8 май 16, 23:01 [19148731] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9646 |
|
||
8 май 16, 23:10 [19148747] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |