|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
Всем привет. Подскажите, была большая таблица с индексами, я создал копию таблицы и перенес в неё данные. Теперь я хочу удалить старую таблицу, но получаю вот такую ошибку: Код: sql 1.
Подскажите, как в правильном порядке удалить этот ключ и удалить таблицу? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 12:56 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
teCa, 1. Найти все таблицы, которые ссылаются на удаляемую, удалить там соответствующие FOREIGN KEY 2. Удалить таблицу ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 13:12 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
DeColo®es teCa, 1. Найти все таблицы, которые ссылаются на удаляемую, удалить там соответствующие FOREIGN KEY 2. Удалить таблицу Плохой совет. Судя по всему, тредстартер не лыка не вяжет в том "что там у него за связи между таблицами". Щас он фсе удалит, а потом прискачет с вопросом "а чего у меня ничего не работает"? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 13:38 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
aleks222, Именно, понятно, что сначала хотелось бы выяснить, что это за связь и как правильно с ней поступить. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 13:46 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
aleks222 Плохой совет. И, наверняка, ведь, кроме удаления старых FK надо будет создать такие же новые, на копию таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 14:32 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
Надо сначала выполнить такой запрос: Модератор: Не смешно После этого спокойно уже удаляешь таблицу, как обычно. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 14:38 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
fkthat Надо сначала выполнить такой запрос: После этого спокойно уже удаляешь таблицу, как обычно. Смешно ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 14:41 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
teCa aleks222, Именно, понятно, что сначала хотелось бы выяснить, что это за связь и как правильно с ней поступить. https://ru.wikipedia.org/wiki/Внешний_ключ ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 15:41 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
teCa, информацию о ключах можно получить из представления sys.foreign_key_columns. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 15:41 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
Владислав Колосов, Можно всё же побольше информации? Используя select * from sys.foreign_key_columns, я получаю список из нескольких записей, вижу, что в списке указаны ИД, как я понимаю, сейчас мне нужно понять, какой ключ из данного списка нужен мне? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 15:54 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 16:21 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
teCa Смешно Обхохочешься Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Только это еще не создаст тебе ключи на копии таблицы (как я выше писал), а, скорее всего, это делать надо будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 16:31 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
fkthat, Да, изначально нужно перевести ключи на новую таблицу. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 17:02 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
teCa Да, изначально нужно перевести ключи на новую таблицу. 1. Разрешить в опциях SSMS пересоздавать таблицы из дизайнера. 2. Открыть в дизайнере старую таблицу и добавить какой-нибудь столбец. Переместить вновь добавленный столбец с последней позиции в любое другое место. 3. Получить скрипт изменений. 4. В данном скрипте удалить из тела транзакции все, кроме инструкцийй alter table ... drop constraint ... и alter table ... add constraint ... 5. Профит. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 17:26 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
invm teCa Да, изначально нужно перевести ключи на новую таблицу. 1. Разрешить в опциях SSMS пересоздавать таблицы из дизайнера. 2. Открыть в дизайнере старую таблицу и добавить какой-нибудь столбец. Переместить вновь добавленный столбец с последней позиции в любое другое место. 3. Получить скрипт изменений. 4. В данном скрипте удалить из тела транзакции все, кроме инструкцийй alter table ... drop constraint ... и alter table ... add constraint ... 5. Профит. Можно проще - скриптануть все нужные FK и в скрипте поменять имя reference-таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 18:07 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
fkthat Можно проще - скриптануть все нужные FK ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 20:00 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
invm fkthat Можно проще - скриптануть все нужные FK ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 20:05 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
fkthat, Т.е. предлагаете скриптовать каждую дочернюю таблицу? И чем же это проще? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 20:30 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
А если таблиц много, то можно скрипт на базе сделать, а потом скопировать ту часть, где FK. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 20:33 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
я бы предложил воспользоваться Smo. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 21:01 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
invm Т.е. предлагаете скриптовать каждую дочернюю таблицу? И чем же это проще? А, я понял о чем ты, просто изначально в твой хак не въехал. Да, если доч. таблиц много, то твоим способом быстрее. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 22:19 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
fkthat invm Т.е. предлагаете скриптовать каждую дочернюю таблицу? И чем же это проще? А, я понял о чем ты, просто изначально в твой хак не въехал. Да, если доч. таблиц много, то твоим способом быстрее. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 11:20 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
alexeyvg Не понимаю смысла "хака" ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 11:30 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
alexeyvg fkthat пропущено... А, я понял о чем ты, просто изначально в твой хак не въехал. Да, если доч. таблиц много, то твоим способом быстрее. Смысл в том, чтобы не скриптовать все дочерние таблицы/ключи по очереди, а скриптануть все это одним махом, вызвав изменения в таблице родительской. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 12:20 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
А, речь о дочерних таблицах, да, это я упустил... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 18:16 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
felix_ff я бы предложил воспользоваться Smo. Код: powershell 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
в целом ничего не мешает добавить инструкцию для удаления FK. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 18:52 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
invm teCa Да, изначально нужно перевести ключи на новую таблицу. 1. Разрешить в опциях SSMS пересоздавать таблицы из дизайнера. 2. Открыть в дизайнере старую таблицу и добавить какой-нибудь столбец. Переместить вновь добавленный столбец с последней позиции в любое другое место. 3. Получить скрипт изменений. 4. В данном скрипте удалить из тела транзакции все, кроме инструкцийй alter table ... drop constraint ... и alter table ... add constraint ... 5. Профит. В данном примере, "получить скрипт изменений" возможно без перестроения таблицы? А то у меня в старой таблице все еще 1.8млрда записей. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 10:42 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
teCa В данном примере, "получить скрипт изменений" возможно без перестроения таблицы? А то у меня в старой таблице все еще 1.8млрда записей. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 10:46 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
invm, Просто тестирую на созданной таблице в студии, я добавляю столбец, меняю его место, нажимаю закрыть окно дизайнера. Сначала получаю диалог - "Сохранить внесенные изменения", нажимаю "Да", получаю диалог с скриптом и предложением его сохранить, после закрытия этого диалога, проверяю таблицу, столбец передвинулся. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 10:52 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
По данной теме, я теперь знаю, что у той таблице, которую я хочу удалить, есть лишь одна связь, я знаю эту талицу и заскриптовал ключ, ссылающийся на старую таблицу: Код: sql 1. 2. 3. 4. 5. 6.
Как я понял, я могу сейчас удалить этот ключ и пересоздать его уже к новой таблице? Код: sql 1. 2. 3. 4. 5. 6.
Я правильно всё понял? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 11:30 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
teCa, Не надо сохранять изменения. Нужно прямо в дизайнере получить скрипт изменений, нажав соответствующую кнопку на тулбаре. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 11:32 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
invm teCa, Не надо сохранять изменения. Нужно прямо в дизайнере получить скрипт изменений, нажав соответствующую кнопку на тулбаре. Спасибо, получился вот такой скрипт: Код: 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. 35.
Подскажите, команды для dbo.Tmp_Blogs_old , в моём контексте не нужны, так ведь? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 11:58 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
teCa, Код: sql 1. 2. 3. 4. 5. 6. 7.
Это тоже вычеркиваем, как я понимаю? На новое таблице уже есть PK_Blogs01_bigint ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 12:07 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
teCa, Перед удалением старой выполнить Код: sql 1. 2.
Затем Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 12:31 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
teCa Всем привет. Подскажите, была большая таблица с индексами, я создал копию таблицы и перенес в неё данные. Теперь я хочу удалить старую таблицу, но получаю вот такую ошибку: Код: sql 1.
Подскажите, как в правильном порядке удалить этот ключ и удалить таблицу? А такая вот задача не решается ли простым переименованием старой таблицы? Если новая это идентичная копия по структуре и данным, то в чем смысл всех этих манипуляций? если делать через sp_rename, то и определения внешних ключей сами пофиксятся. Сработает, если в той же схеме. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 12:42 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
invm teCa, Перед удалением старой выполнить Код: sql 1. 2.
Затем Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Блокировок таблиц не предусматривает данные действия? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 12:56 |
|
Удаление таблицы с первичным ключом?
|
|||
---|---|---|---|
#18+
teCa, При создании нового ключа, получаю такую ошибку: авторСтолбец «dbo.Blogs.Id» не является тем же типом данных, что и столбец «BlogMetrics.BlogId» во внешнем ключе «FK_BlogMetricsNew_Authors1». В данной таблице я вижу всего одну строку. Могу ли я через дизайнер просто сменить тип на bigint после удаления внешнего влюча? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 13:40 |
|
|
start [/forum/topic.php?all=1&fid=46&tid=1685426]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 165ms |
0 / 0 |