У меня есть база данных Mircrosoft Sql Server, состоящая из 8 таблиц, которые все связаны с тем, что я пытаюсь обновить. Для этого я создать несколько временных таблицыИсключение основного ключа SQL
"CREATE TABLE [vehicle_data].[dbo].[temp_MAINTENANCE_EVENT] (" +
"[maintenance_event_id] int," +
"[maintenance_computer_code_id] int," +
"[veh_eng_maintenance_id] int," +
"CONSTRAINT [PK_maintenance_event_id"] PRIMARY KEY CLUSTERED ([maintenance_event_id] ASC))";
Затем после того, как все временные таблицы созданы Я падаю существующие таблицы, переименовывать временные таблицы, а также добавлять внешние ключи и индексирование для новых таблиц для ускорения объединяется и запрашивает.
Проблема, с которой я столкнулась, заключается в том, что исходные первичные ключи остаются. Поэтому, когда я иду, чтобы обновить снова я получаю
Исключение: Существует уже объект с именем «PK_maintenance_event_id» в базе данных. Не удалось создать ограничение.
Мне интересно, каков наилучший способ действий? Должен ли я не устанавливать первичный ключ, когда я создаю временную таблицу и вместо этого добавляю ее в таблицу после ее переименования? Или есть способ переименовать ограничения, чтобы при переименовании таблицы я могу изменить имя ограничения первичного ключа.
После того, как исходные таблицы были отброшены, я хочу, чтобы там было как можно меньше времени простоя, но все, что происходит до того, как таблицы были сброшены, может занять очень много времени, и это не имеет значения.
Вам нужно сохранить имя PK? Если нет, то просто не называйте его, и SqlServer будет составлять для него уникальное имя. – RBarryYoung
Ha! Просто заметил, что парень в большом красном «Ад» справа - мой друг. Ницца. :-) – RBarryYoung
Я не вижу Ad haha, но любая идея синтаксиса для этого? – nastassiar