我在具有近一百万行的数据库中有一个表message。它有一个externalId列,该列是varchar(50)。存储在其中的值是guid,但我想将此列更新为uniqueidentifier

所以我想我要添加一个新列,即uniqueidentifier。将所有值复制到此列,然后删除原始列。然后,我将该列重命名为externalId

我的问题是有数百个存储过程等,我需要确保我不会破坏任何东西。我还必须遍历所有代码并进行更改,以便我们期望使用Guid而不是字符串。 (我正在使用C#)

有人有提示或建议吗?

我最好只复制该列而不接触现有的列,并使用guid列而不是字符串(对它而言,有时会超时!)使任何对它进行选择的代码成为现实。我还必须更新任何代码,然后将其插入到该表中以同时插入GUID ...)

我喜欢传统的废话。

最佳答案

你可以简单地

alter table message
    alter column externalId uniqueidentifier


风险是,如果存储在该列中的任何值都不是guid,您将看到类似以下的错误:

Conversion failed when converting from a character string to uniqueidentifier.

关于sql - SQL Server将一列从varchar(50)重构为uniqueidentifier和周围的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4440912/

10-10 22:45