Забавная подробность BCP

добавлено: 03 сен 15
понравилось:0
просмотров: 1064
комментов: 2

теги:

Автор: Дмитрий Горчилин

Были несколько раз забавные приключения, когда bcp паковала данные мимо форинкея. А потом у счастливых владельцев этих таблиц недоумение, раз даже на грани истерики. Судя по всему, ропот был услышан MS:



2005

https://technet.microsoft.com/ru-ru/library/ms186247(v=sql.90).aspx

По умолчанию, инструкция INSERT проверяет ограничения CHECK и FOREIGN KEY. Однако инструкция INSERT ... SELECT * FROM OPENROWSET(BULK...) позволяет переопределить проверку ограничений CHECK и FOREIGN KEY.

Примечание.

Нельзя отключить ограничения UNIQUE, PRIMARY KEY или NOT NULL.



2008 R2

https://technet.microsoft.com/ru-ru/library/ms186247(v=sql.105).aspx

Примечание

Только ограничения CHECK могут быть отключены. Нельзя отключить ограничения UNIQUE, PRIMARY KEY, FOREIGN KEY или NOT NULL.



То есть, в 2008 R2 проверку на форинкей отключить нельзя, а в 2005 можно.

Ну а в целом конечно форинкеи враг репликации. Таблицы иногда получают из разных источников, иногда возникают расхождения в данных. Упала репликация- за это голова болит вроде бы уже как и не у владельцев сервера- получателя. Лучше бы на стороне получателя убрать все проверки кроме PK. Это не всегда возможно, но очень желательно.

Комментарии


  • 07 сентября 2015, 07:15 Дмитрий Горчилин

    Не очень понял к чему здесь "маша и медведь". Что до специалистов в плане впихнуть невпихуемое- их всегда хватало, иногда их достижения откровенно пугали



Необходимо войти на сайт, чтобы оставлять комментарии