Программное переименование таблицы в SQL Server 2000 - единственное решение - sp_rename?

Недавно мне пришлось переименовать таблицу (и столбец и ограничения FK / PK) в SQL Server 2000 без потери данных. Кажется, не было очевидных операторов DDL T-SQL для выполнения этого действия, поэтому я использовал sp_rename, чтобы напрямую возиться с именами объектов.

Было ли это единственным решением проблемы? (кроме того, чтобы дать таблице правильное имя в первую очередь - дох!)

Отдавайте должное там, где причитается. Главный ответ - это правильный ответ, и он сидит там с 3 минут до вашего вопроса. Обратите внимание, что за него проголосовали 3 раза.

Pittsburgh DBA 09.10.2008 18:06
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
1
8 617
4

Ответы 4

sp_rename - правильный способ сделать это.

EXEC sp_rename 'Old_TableName', 'New_TableName'

Возможно, не только: я думаю, вы всегда можете поиграть с основной базой данных и обновить там имя таблицы, но это крайне нежелательно.

Да, я согласен, что это было бы крайне нецелесообразно, учитывая, что прямое решение существует «из коробки».

Galwegian 02.10.2008 13:57

Существует решение, позволяющее одновременно работать как со старой, так и с новой версиями таблицы. Это особенно важно, если ваши данные реплицируются и / или доступны через клиентский интерфейс (это означает, что старые версии клиентского интерфейса будут по-прежнему работать со старым именем таблицы):

  1. Измените ограничения (включая FK) в вашей таблице с помощью команды «ALTER TABLE».
  2. Не меняйте имя таблицы или имя поля, но создайте представление, такое как:

    SELECT oldTable.oldField1 as newField1, ...

    сохраните его как newTable (и, если потребуется, распределите его на разных серверах)


Обратите внимание, что вы не можете изменить свой ПК таким образом.

ЯБР666 EXEC sp_rename 'Old_TableName', 'New_TableName' работают нормально, но есть любое ключевое слово вроде "изменить старое_имя табеля на новое_имя"

Другие вопросы по теме