Программное переименование таблицы в SQL Server 2000 - единственное ли решение sp_rename? - PullRequest
3 голосов
/ 02 октября 2008

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

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

Ответы [ 4 ]

13 голосов
/ 02 октября 2008

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

EXEC sp_rename 'Old_TableName', 'New_TableName'
2 голосов
/ 15 июня 2010

Я.
EXEC sp_rename 'Old_TableName', 'New_TableName' работают хорошо, но любое ключевое слово, как msgstr "изменить имя старой таблицы на новое имя"

0 голосов
/ 02 октября 2008

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

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

    SELECT oldTable.oldField1 as newField1, ...

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


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

0 голосов
/ 02 октября 2008

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

...