0

我正在对 Sql Server (2008) 数据库进行更改,以将现有列类型从 UUID 更改为 varchar(128) - 我们称之为引用的列最初用于保存参考项目的 ID提供了有关行中数据的更多信息,但现在业务需求发生了变化,我们将允许使用自由格式的文本。没有针对该列设置外键,因此不会有任何破坏关系。

我目前最大的担忧是与现有存储过程的向后兼容性之一。不幸的是,数据库非常大而且非常老旧,并且包含数百个存储过程,在整个设计过程中乱七八糟。我对做出可能会破坏现有存储过程的更改感到非常紧张。

我知道这是一个加载的问题,但一般来说,UUID 列可以转换为 varchar 列而不会产生有害影响吗?鉴于 UUID 可以表示为字符串,因此插入或查询 UUID 列的任何现有存储过程似乎仍然有效。

4

1 回答 1

1

我已尝试执行以下步骤,但没有发现任何问题,因此我认为您可以继续更改列数据类型:

  1. 使用列类型作为唯一标识符创建表。
  2. 创建存储过程以通过 NewID() 函数将值插入该表。
  3. 执行存储过程,数据插入没有任何问题。
  4. 现在,我将列类型更改为 varchar 并再次执行存储过程。
  5. 程序运行良好,没有任何问题,并且插入了数据。

所以,答案是肯定的,您可以更改列数据类型。

于 2013-08-26T18:34:41.360 回答