Форум программистов, компьютерный форум, киберфорум
Наши страницы
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Serg046
21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376
1

Работа с внешними ключами

15.01.2012, 19:12. Просмотров 996. Ответов 4
Метки нет (Все метки)

Создаю две таблицы
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
            SqlCommand cmdCreateTable = new SqlCommand("CREATE TABLE " +
            "Auto (ID int not null primary key identity" +
            ", FIO char(60) not null," +
            "  Grupa char(20) not null)", conn);
            try
            {
                cmdCreateTable.ExecuteNonQuery();
            }
            catch
            {
                //Console.WriteLine("Ошибка при создании таблицы");
                //return;
            }
            cmdCreateTable = new SqlCommand("CREATE TABLE " +
            "Auto2 (ID2 int not null references Auto (ID))", conn);
            try
            {
                cmdCreateTable.ExecuteNonQuery();
            }
            catch
            {
                //Console.WriteLine("Ошибка при создании таблицы");
                //return;
            }
Создаю внешний ключ
C#
1
ID2 int not null references Auto (ID)
Так вот при выводе ID выводятся 1,2..n, а при выводе ID2 пусто. Сам внешний ключ создался, проверил в management studio.

Добавлено через 12 минут
Пробовал ставить в Auto первичный ключ строку и на него ссылать, все равно ничего не выводиться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.01.2012, 19:12
Ответы с готовыми решениями:

Создание таблицы с внешними ключами посредством t-sql
всем привет Пытаюсь создать таблицу с внешними ключами) В t-sql да даже в sql...

Про связь первичного с несколькими внешними ключами
здравствуйте! у меня такой вопрос:как можно связать первичный ключ...

Изменение столбца таблицы с внешними зависимостями
Всем привет. Пытаюсь изменить тип столбца с varchar(50) на : ALTER TABLE...

Как создать пустую копию таблицы с ключами
Добрый день! Как создать пустую копию таблицы с ключами в одной базе без...

Проблема с внешними ключами
Доброго времени суток. Только начал изучать MySQL, возникла проблема с внешними...

4
pincet
1323 / 911 / 123
Регистрация: 23.07.2010
Сообщений: 4,939
15.01.2012, 20:46 2
Запрос показывай
0
Serg046
21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376
15.01.2012, 20:49  [ТС] 3
Как создал таблицы показал. Вот как добавляю и вывожу.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
            SqlCommand cmd = new SqlCommand("Insert into Auto (FIO,Grupa) Values (@FIO,@Grupa)", conn);
            cmd.Parameters.Add(new SqlParameter("@FIO", "ad3"));
            cmd.Parameters.Add(new SqlParameter("@Grupa", "tri"));
            try
            {
                cmd.ExecuteNonQuery();
            }
            catch
            {
                //Console.WriteLine("Ошибка, при выполнении запроса на добавление записи");
                return;
            }
            cmd = new SqlCommand("Select * From Auto2", conn);
 
            using (SqlDataReader dr = cmd.ExecuteReader())
            {
                //цикл по всем столбцам полученной в результате запроса таблицы
                for (int i = 0; i < dr.FieldCount; i++)
                    textBox1.Text += dr.GetName(i).ToString().Trim();
                while (dr.Read())
                {
                textBox1.Text += dr[0];
                }
            }
Если селект из Auto, то все норм. А так выводится только ID2.
0
pincet
1323 / 911 / 123
Регистрация: 23.07.2010
Сообщений: 4,939
15.01.2012, 20:54 4
SQL
1
SELECT * FROM auto  INNER JOIN auto2 ON auto.id=auto2.id2
как-то так
0
Serg046
21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376
16.01.2012, 02:15  [ТС] 5
Полагаю, этот код как бы достает записи из auto2? Типа получается у меня фактически записей в auto2 нет что-ли? Ну вернее ссылок?
Как бы не пойму почему мой код не работает, ведь внешний ключ я думал как раз и подразумевает наличие этих самых ссылок.

Добавлено через 56 минут
Видимо я не понял сути внешних ключей. Я полагал что при его создании данные из ПК перенесутся. А теперь понимаю что они служат для связи.
Как сделать так:
Добавляю данные в столбец data таблицы num1
А вместе с этим данные еще и добавляются в стобец data таблицы num2.

Добавлено через 1 час 41 минуту
Можно закрывать
0
16.01.2012, 02:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2012, 02:15

Создание таблицы с внешними ключами
Доброго времени суток. Форума по Sqlite тут не нашел поэтому решил задать...

Как пользоваться внешними ключами?
у меня две таблицы: CREATE TABLE . ( INT IDENTITY (1, 1) NOT...

Запрос Join и таблицы с внешними ключами
Добрый день. Мне нужно вывести данные из нескольких таблиц. Использую Join,при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru