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

Sql server 在SQL Server 2000中以编程方式重命名表-sp_重命名是唯一的解决方案吗?,sql-server,tsql,sql-server-2000,Sql Server,Tsql,Sql Server 2000,我最近不得不在SQLServer2000中重命名一个表(以及一个列和FK/PK约束),而不会丢失一个数据。执行此操作似乎没有明显的DDL T-SQL语句,因此我使用sp_rename直接处理对象名 这是解决问题的唯一办法吗?(除了首先给表格起正确的名字外——doh!)sp\u重命名是正确的方法 EXEC sp_rename 'Old_TableName', 'New_TableName' 可能不是唯一的:我想您可以随时玩弄主数据库并更新那里的表名,但这是非常不值得推荐的。有一种解决方案可以让您

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


这是解决问题的唯一办法吗?(除了首先给表格起正确的名字外——doh!)

sp\u重命名是正确的方法

EXEC sp_rename 'Old_TableName', 'New_TableName'

可能不是唯一的:我想您可以随时玩弄主数据库并更新那里的表名,但这是非常不值得推荐的。

有一种解决方案可以让您同时处理旧版本和新版本的表。如果您的数据是通过客户端接口复制和/或访问的(这意味着旧版本的客户端接口仍将使用旧表名),这一点尤为重要:

  • 通过“
    altertable
    ”命令修改表上的约束(包括FK)
  • 不要更改表名或名称 字段名,但创建这样的视图 作为:

    选择oldTable.oldField1作为newField1,…

    将其另存为新表(如果需要,将其分发到不同的服务器上)


  • 请注意,您不能以这种方式修改PK。

    Ya
    EXEC sp_重命名“旧_表名”、“新_表名” 工作很好,但是有什么关键词像吗
    “将tabel old_name更改为new_name”

    是的,我同意这是非常不明智的,因为存在“现成”的直截了当的解决方案。在应该得到认可的地方给予认可。最上面的答案是正确答案,从你的问题开始3分钟后就一直坐在那里。请注意,它已被投票支持了3次。