С Новым годом! Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/124: Рейтинг темы: голосов - 124, средняя оценка - 4.77
 Аватар для blogger
6 / 6 / 1
Регистрация: 20.11.2009
Сообщений: 140

Как отключить проверку FOREIGN KEY

07.01.2010, 22:35. Показов 26502. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Как с помощью IGNORE_CONSTRAINTS отключить проверку FOREIGN KEY?
SQL
1
2
3
4
5
6
7
8
SET IDENTITY_INSERT Товары ON
INSERT INTO Товары (Номер, Группа, Название, Еденица_измерения, Цена_закупочная, Цена_реализации)
VALUES (1, 'Canon RX400-54', 'Аналоговые фотоаппраты', 'шт', 730, 1600)
INSERT INTO Товары (Номер, Группа, Название, Еденица_измерения, Цена_закупочная, Цена_реализации)
VALUES (2, 'Kodak 22TR-12', 'Цифровые фотоаппраты', 'шт', 5680, 12300)
INSERT INTO Товары (Номер, Группа, Название, Еденица_измерения, Цена_закупочная, Цена_реализации)
VALUES (3, 'Карта памяти 256 Mb', 'Аксессеуары', 'шт', 890, 2100)
SET IDENTITY_INSERT Товары OFF
При запуске этого запроса появляется ошибка о конфликте инструкции INSERT с ограничением FOREIGN KEY. Как её отключить? Допишите код в мой запрос.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.01.2010, 22:35
Ответы с готовыми решениями:

Foreign KEY
Здравствуйте форумчане. Помогите с проблемой. Впервые настраиваю связи в БД. Ситуация: есть 4 справочника (приведу сокращенные названия) ...

Получение информации о Foreign Key
Какую процедуру, функцию нужно использовать, чтобы получить имя зависимой таблицы и столбца содержащего Foreign Key и записать эти данные...

Truncate, delete и foreign key
Всем привет ! Есть база со связями и ключами. Мне необходимо очистить таблицу Archivefiles, оставив структуру, индексы, связи и...

12
23 / 23 / 1
Регистрация: 20.12.2009
Сообщений: 74
07.01.2010, 23:19
Цитата Сообщение от blogger Посмотреть сообщение
Как с помощью IGNORE_CONSTRAINTS отключить проверку FOREIGN KEY?
Т.е. Вы хотите отключить проверку FK только потому, что она вызывает ошибку? Вы вообще дружны с головой? Давайте искать, почему такая ошибка возникает, но ни в коем случае не пользоваться послаблениями MS.
0
 Аватар для blogger
6 / 6 / 1
Регистрация: 20.11.2009
Сообщений: 140
07.01.2010, 23:39  [ТС]
Ну начну с того, что я только учу SQL и, как мне кажется, вы имеете в виду MS SQL, разве они одинаковые?
Это описание IGNORE_CONSTRAINTS на сайте MSDN:
Указывает, что при операции массового импорта будут пропускаться какие-либо ограничения на таблицу. По умолчанию, инструкция INSERT проверяет ограничения CHECK и FOREIGN KEY. Если для операции массового импорта задан параметр IGNORE_CONSTRAINTS; инструкция INSERT будет пропускать ограничения в целевой таблице. Обратите внимание, что нельзя отключить ограничения UNIQUE, PRIMARY KEY или NOT NULL.
Вот моя ошибка:
Сообщение 547, уровень 16, состояние 0, строка 2
Конфликт инструкции INSERT с ограничением FOREIGN KEY "fv_Группа". Конфликт произошел в базе данных "Фототовары", таблица "dbo.Группы_товаров", column 'Номер'.
Разве нельзя с помощью IGNORE_CONSTRAINTS пропустить эту ошибку? Я знаю из-за чего она, но можно ли отключить проверку?
0
23 / 23 / 1
Регистрация: 20.12.2009
Сообщений: 74
07.01.2010, 23:57
Цитата Сообщение от blogger Посмотреть сообщение
Ну начну с того, что я только учу SQL...
Вы афоризм про страуса, который голову в песок сует слыхали? Так Вы хотите быть тем самым страусом?..
Я один раз сталкивался с ситуацией, когда "добрая душа" вырубила проверку FK. Потратил полдня. Столько долго потому, что в голове не укладывалось, что такое может быть. В MSSQL - может, но это напрасно сделали.

По проблеме. Вы вставляете данные в таблицу. В ней есть внешний ключ по столбцу [Номер], таблица [Группы_товаров]. Нужного первичного ключа нет (на какую таблицу ссылается ключ fv_Группа?). Теперь выясните, почему его нет. Или почему есть в таблице
1
 Аватар для blogger
6 / 6 / 1
Регистрация: 20.11.2009
Сообщений: 140
08.01.2010, 16:23  [ТС]
Цитата Сообщение от Senya_L Посмотреть сообщение
Так Вы хотите быть тем самым страусом?..
Ну так, вы думаете, что страус с первого дня жизни научился сувать голову в песок?

Если можете, помогите мне, а то я уже голову сломал в поиске решения проблемы. Я прикрепил базу, запрос, про который мы говорим, - №9. Это моя уже 5 база, но не у всех баз была такая ошибка, я не понимаю, из-за чего она.
0
 Аватар для blogger
6 / 6 / 1
Регистрация: 20.11.2009
Сообщений: 140
08.01.2010, 17:00  [ТС]
Вот база Фототовары
Вложения
Тип файла: rar Фототовары.rar (2.4 Кб, 90 просмотров)
0
23 / 23 / 1
Регистрация: 20.12.2009
Сообщений: 74
08.01.2010, 17:00
blogger, Прикрепленной БД не вижу. Почитайте уж что-нибудь про внешние ключи (FOREIGN KEY). Если какая-нибудь книга есть - смотрите что-то типа "Ограничения ссылочной целостности".

ЗЫ. Кстати, ключ отключается очень просто...
T-SQL
1
2
ALTER TABLE <table_name>
    NOCHECK CONSTRAINT <FK_name>
Непросто потом ошибки исправлять. Эта возможность создавалась для ускорения массовой загрузки, когда заранее известно, что несогласованности в данных нет.
0
 Аватар для blogger
6 / 6 / 1
Регистрация: 20.11.2009
Сообщений: 140
08.01.2010, 17:02  [ТС]
Senya_L, Я только щас заметил что БД нет, просто, когда прикрепляешь файл то там 2 кнопки отправить: отправить сообщение и отправить сообщение с файлом, я это только сейчас заметил, извиняюсь.
0
23 / 23 / 1
Регистрация: 20.12.2009
Сообщений: 74
08.01.2010, 17:08
Цитата Сообщение от blogger Посмотреть сообщение
Senya_L, Я только щас заметил что БД нет, просто, когда прикрепляешь файл то там 2 кнопки отправить: отправить сообщение и отправить сообщение с файлом, я это только сейчас заметил, извиняюсь.
Смотрю на скрипты и балдею.
1) Для чего в таблице [Группы_товаров] столбец [Номер] типа varchar(100)? Достаточно INT.
2) Вы плохо понимаете, что такое "внешний ключ". Читайте.
3)
T-SQL
1
2
3
4
5
6
7
8
SET IDENTITY_INSERT Товары ON
insert into Товары (Номер, Группа, Название, Еденица_измерения, Цена_закупочная, Цена_реализации)
values (1, 1, 'Canon RX400-54', 'шт', 730, 1600)
insert into Товары (Номер, Группа, Название, Еденица_измерения, Цена_закупочная, Цена_реализации)
values (2, 2, 'Kodak 22TR-12', 'шт', 5680, 12300)
insert into Товары (Номер, Группа, Название, Еденица_измерения, Цена_закупочная, Цена_реализации)
values (3, 3, 'Карта памяти 256 Mb', 'шт', 890, 2100)
SET IDENTITY_INSERT Товары OFF
0
 Аватар для blogger
6 / 6 / 1
Регистрация: 20.11.2009
Сообщений: 140
08.01.2010, 18:58  [ТС]
Цитата Сообщение от Senya_L Посмотреть сообщение
Для чего в таблице [Группы_товаров] столбец [Номер] типа varchar(100)?
Потому что я связываю её с таблицей Товары и поле Группа там varchar, если я меняю поле Номер в таблице Группы_товаров, то связь уже не получается из-за несовпадения типов данных. Или в таблице Товары нужен int? Ну а как тогда написать название группы, к которой относится товар? Поэтому я и хочу отключить проверку FOREIGN KEY. Или я не прав, прошу поправить меня


Цитата Сообщение от Senya_L Посмотреть сообщение
Вы плохо понимаете, что такое "внешний ключ"
Последние несколько дней я очень много прочитал про внешние ключи, целостность данных и так далее....Но практика есть практика, тут всегда будет что-то непонятное и всегда будут вопросы.
0
23 / 23 / 1
Регистрация: 20.12.2009
Сообщений: 74
08.01.2010, 22:07
Цитата Сообщение от blogger Посмотреть сообщение
Потому что я связываю её с таблицей Товары и поле Группа там varchar, если я меняю поле Номер в таблице Группы_товаров, то связь уже не получается из-за несовпадения типов данных. Или в таблице Товары нужен int? Ну а как тогда написать название группы, к которой относится товар? Поэтому я и хочу отключить проверку FOREIGN KEY. Или я не прав, прошу поправить меня:
Поправляю: прочитайте еще про соединения (оператор JOIN).
Это основа реляционных баз данных.
1
 Аватар для blogger
6 / 6 / 1
Регистрация: 20.11.2009
Сообщений: 140
08.01.2010, 23:01  [ТС]
Senya_L, большое спасибо вам за оказанную помощь. Я только сейчас понял, что вы уже ответили на мой вопрос в 9 посте
0
23 / 23 / 1
Регистрация: 20.12.2009
Сообщений: 74
08.01.2010, 23:06
Цитата Сообщение от blogger Посмотреть сообщение
Senya_L, большое спасибо вам за оказанную помощь. Я только сейчас понял, что вы уже ответили на мой вопрос в 9 посте
Я оказал Вам медвежью услугу, вобщем-то... Просто тупо исправил скрипт под задачу.

Разберитесь с ключами и соединениями. Ну это, конечно, если хотите стать специалистом, а не просто лабу сдать. И не просто получить диплом.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.01.2010, 23:06
Помогаю со студенческими работами здесь

The INSERT statement conflicted with the FOREIGN KEY
В чем собственно у меня ошибка?(На 1 скрине) п. 4.11 Правил форума

Добавление NOT NULL FOREIGN KEY в таблицу
Доброго времени суток. Задача скорее всего распространеная. Есть 2 таблицы А и Б. Таблица А содержит данные. Моя задача добавить в таблицу...

Конфликт инструкции INSERT с ограничением FOREIGN KEY
Здравствуйте! Есть две таблицы которые связаны ключом, при создании строки с с этим ключом SQL жалуется: Сообщение 547, уровень 16,...

DDL-триггер для primary и foreign key
Суть задания: написать DDL-триггер, который при удалении ограничения внешнего или первичного ключа делает откат транзакции. Сделал...

Конфликт инструкции ALTER TABLE с ограничением FOREIGN KEY
Имеется 2 таблицы. Одна должна быть связана с другой посредством столбца и ID. Каким то наихитрейшим образом связь оборвалась - столбцы...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru