在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"