我在具有近一百万行的数据库中有一个表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/