gpt4 book ai didi

SQL,如何在不破坏其他依赖关系的情况下更改 SQL 表中的列?

转载 作者:行者123 更新时间:2023-12-03 20:16:36 25 4
gpt4 key购买 nike

我确定这可能是很常见的查询,但目前找不到好的答案。

这是我的问题:

我有一个名为 Contacts 的表,带有 varchar 列标题。现在在开发过程中,我想用 TitleID 替换字段 Title,它是 ContactTitles 表的外键。目前表 Contacts 有超过 60 个依赖项(其他表、 View 函数)。

我怎样才能以最安全和最简单的方式做到这一点?

我们使用的是:MSSQL 2005,数据已经迁移,只想换schema。

编辑:

感谢所有人快速重播。

就像提到的 Contacts 表有 60 多个依赖项,但是当运行以下查询时,其中只有 5 个使用 Title 列。迁移脚本已运行,因此无需更改数据。

/*gets all objects which use specified column */

SELECT Name
FROM syscomments sc
JOIN sysobjects so ON sc.id = so.id
WHERE TEXT LIKE '%Title%' AND TEXT LIKE '%TitleID%'

然后我浏览了这 5 个 View 并手动更新它们。

最佳答案

使用 refactoring方法。首先创建一个名为 TitleID 的新字段,然后将所有标题复制到 ContactTitles table 。然后,一一更新每个依赖项以使用 TitleID 字段。只要确保在每一步之后你仍然有一个工作系统。

如果数据要更改,您必须小心并确保对 Title 进行任何更改。栏目也改了ContactTitles table 。您只需在进行重构时保持它们同步。

编辑:甚至还有一本关于它的书! Refactoring Databases .

关于SQL,如何在不破坏其他依赖关系的情况下更改 SQL 表中的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3084120/

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