gpt4 book ai didi

sql - 我能否以向后兼容的方式更改 SQL Server 表名?例如添加一个永久别名?

转载 作者:行者123 更新时间:2023-12-02 17:42:52 27 4
gpt4 key购买 nike

我继承了一个 Sql Server 2008 数据库。许多应用程序和 SSIS 包都使用该数据库。不久前,数据库的范围发生了变化,添加了许多新表。因此,许多表名(甚至数据库名称本身)都不再有意义,导致架构非常困惑。

我可以立即重命名表格并更改应用程序和流程以使用新名称,但同时它会导致困惑和停机是 Not Acceptable 。

有没有一种方法可以为表添加一个备用名称(如永久别名),在我完成所有重构之前,我可以使用它来引用新表名或旧表名?

最佳答案

首先创建一个同义词。

CREATE SYNONYM dbo.SensibleName FOR dbo.CrazyName;

现在在您的代码库中找到所有对 CrazyName 的引用,并将它们更新为引用 SensibleName。一旦你相信你已经找到了所有这些,你最终可以运行:

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
BEGIN TRANSACTION;
DROP SYNONYM dbo.SensibleName;
EXEC sp_rename N'dbo.CrazyName', N'SensibleName', N'OBJECT';
COMMIT TRANSACTION;

如果您需要使 名称更合理,则必须使用 View 来实现,因为同义词仅涵盖数据库级对象的一个​​子集。

Some other info here .

关于sql - 我能否以向后兼容的方式更改 SQL Server 表名?例如添加一个永久别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18345336/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com