|
Как удалить DEFAULT_CONSTRAINT ни к чему не привязанный?
|
|||
---|---|---|---|
#18+
Здравствуйте. В базе одной программы, обнаружен странный объект на который ругается новая версия программы (предыдущие его успешно игнорировали) запрос select * from sys.all_objects where [name] like '%имяобъекта%' показывает name = имяобъекта object_id = 5575058 principal_id = NULL schema_id = 1 parent_object_id = 0 type = D type_desc = DEFAULT_CONSTRAINT create_date = 2012-05-04 19:14:22.060 modify_date = 2012-05-04 19:14:22.060 is_ms_shipped = 0 is_published = 0 is_schema_published = 0 --- странность в том что parent_object_id = 0 т.е. совершенно не понятно к чему он привязан. Удаление DROP DEFAULT имяобъекта выдает ошибку Невозможно удалить по умолчанию "имяобъекта", так как она привязана к одной или нескольким столбец. Других вариантов удаления не нашел. Подскажите пожалуйста как его удалить. P.S. база на сервере MS SQL Server 2019 (15.0.2000.5) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 07:57 |
|
Как удалить DEFAULT_CONSTRAINT ни к чему не привязанный?
|
|||
---|---|---|---|
#18+
Господин Уэф! странность в том что parent_object_id = 0 т.е. совершенно не понятно к чему он привязан. Посмотрите INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE, может там есть... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 10:47 |
|
Как удалить DEFAULT_CONSTRAINT ни к чему не привязанный?
|
|||
---|---|---|---|
#18+
alexeyvg Посмотрите INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE, может там есть... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 10:47 |
|
Как удалить DEFAULT_CONSTRAINT ни к чему не привязанный?
|
|||
---|---|---|---|
#18+
Господин Уэф!, существуют ли объекты, которые ссылаются на этот? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 10:58 |
|
Как удалить DEFAULT_CONSTRAINT ни к чему не привязанный?
|
|||
---|---|---|---|
#18+
https://docs.microsoft.com/ru-ru/sql/t-sql/statements/drop-default-transact-sql?view=sql-server-ver15 В общем, надо сначала отвязать объект DEFAULT от колонки (sp_unbindefault), а потом удалить. И никогда больше не применять объект DEFAULT (его выбросят со следующей версии. Давно уже обещали) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 10:59 |
|
Как удалить DEFAULT_CONSTRAINT ни к чему не привязанный?
|
|||
---|---|---|---|
#18+
Надо же, никогда не пользовался. Музейный экспонат. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 11:27 |
|
Как удалить DEFAULT_CONSTRAINT ни к чему не привязанный?
|
|||
---|---|---|---|
#18+
iap И никогда больше не применять объект DEFAULT (его выбросят со следующей версии. Давно уже обещали) Не объект выбросят, а команду DROP DEFAULT. автор DROP DEFAULT will be removed in the next version of MicrosoftSQL Server. Do not use DROP DEFAULT in new development work, and plan to modify applications that currently use them. Instead, use default definitions that you can create by using the DEFAULT keyword of ALTER TABLE or CREATE TABLE. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 12:14 |
|
Как удалить DEFAULT_CONSTRAINT ни к чему не привязанный?
|
|||
---|---|---|---|
#18+
Владислав Колосов существуют ли объекты, которые ссылаются на этот? select * from sys.all_objects where parent_object_id=5575058 пусто ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 14:12 |
|
Как удалить DEFAULT_CONSTRAINT ни к чему не привязанный?
|
|||
---|---|---|---|
#18+
alexeyvg Привязка не может записываться в поле parent_object_id, это же очевидно (как в одно поле записать множество значений?) Может и записана. По остальным объектам типа DEFAULT_CONSTRAINT поле parent_object_id заполнено и указывает именно на тот объект к которому привязка. Посмотрите INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE, может там есть... Нет нету. Нет в том числе и тех пар, что связаны по parent_object_id ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 14:35 |
|
Как удалить DEFAULT_CONSTRAINT ни к чему не привязанный?
|
|||
---|---|---|---|
#18+
4es Не объект выбросят, а команду DROP DEFAULT Не зря же упоминается ALTER TABLE и CREATE TABLE. Кстати, ещё же объекты RULE были. C ними то же самое. Жаль. Это всё очень удобно было. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 16:50 |
|
Как удалить DEFAULT_CONSTRAINT ни к чему не привязанный?
|
|||
---|---|---|---|
#18+
Господин Уэф! По остальным объектам типа DEFAULT_CONSTRAINT поле parent_object_id заполнено и указывает именно на тот объект к которому привязка. Вполне возможно создать один, ни к чему не относящийся и не привязанный default constraint (или привязанный к нескольким колонкам в разных таблицах) - как выше уже писали, это специфика старых версий сервера: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 17:19 |
|
|
start [/forum/topic.php?fid=46&msg=40123548&tid=1683965]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
182ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 240ms |
total: | 523ms |
0 / 0 |