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





sp_rename - правильный способ сделать это.
EXEC sp_rename 'Old_TableName', 'New_TableName'
Возможно, не только: я думаю, вы всегда можете поиграть с основной базой данных и обновить там имя таблицы, но это крайне нежелательно.
Да, я согласен, что это было бы крайне нецелесообразно, учитывая, что прямое решение существует «из коробки».
Существует решение, позволяющее одновременно работать как со старой, так и с новой версиями таблицы. Это особенно важно, если ваши данные реплицируются и / или доступны через клиентский интерфейс (это означает, что старые версии клиентского интерфейса будут по-прежнему работать со старым именем таблицы):
ALTER TABLE».Не меняйте имя таблицы или имя поля, но создайте представление, такое как:
SELECT oldTable.oldField1 as newField1, ...
сохраните его как newTable (и, если потребуется, распределите его на разных серверах)
Обратите внимание, что вы не можете изменить свой ПК таким образом.
ЯБР666 EXEC sp_rename 'Old_TableName', 'New_TableName' работают нормально, но есть любое ключевое слово вроде "изменить старое_имя табеля на новое_имя"
Отдавайте должное там, где причитается. Главный ответ - это правильный ответ, и он сидит там с 3 минут до вашего вопроса. Обратите внимание, что за него проголосовали 3 раза.