在SQL Server 2000中以编程方式重命名表-sp_rename是唯一的解决方案吗?

时间:2020-03-06 15:01:05  来源:igfitidea点击:

最近,我不得不在SQL Server 2000中重命名表(以及列和FK / PK约束),而不会丢失数据。似乎没有明显的DDL T-SQL语句来执行此操作,因此我使用sp_rename直接摆弄对象名称。

这是唯一解决问题的方法吗? (除了将表的正确名称放在第一位之外,不要这样做!)

解决方案

sp_rename是正确的方法。

EXEC sp_rename 'Old_TableName', 'New_TableName'

也许不是唯一的:我想我们总是可以使用master数据库并在那里更新表名,但这是非常不推荐的。

有一种解决方案可以让我们同时使用旧版本的表。如果我们复制数据和/或者通过客户端界面访问数据(这意味着客户端界面的旧版本仍可与旧表名一起使用),这尤其重要:

  • 通过"ALTER TABLE"命令修改表上的约束(包括FK)
  • 不要更改表名或者字段名,而是创建一个视图,例如:SELECT oldTable.oldField1 as newField1,...将其另存为newTable(如果需要,可以将其分发到其他服务器上)

请注意,我们不能以这种方式修改PK。


EXEC sp_rename'Old_TableName','New_TableName'
工作正常,但任何关键词都可以
"将表格的old_name更改为new_name"