所连接的数据库服务器不支持将 "uniqueidentifier "转换为 "int"。

问题描述 投票:22回答:3

我正准备将我的数据库从使用旧的会员资格迁移到mvc4中的数据库,而mvc4使用的是 int 而不是 guid.

当改变类型时,我得到以下错误。

连接的数据库服务器不支持从int转换为uniqueidentifier。

我怎样才能改变 UserIdint 通过SQL Server Management Studio?

sql-server uniqueidentifier ssms
3个回答
9
投票

你必须添加一个新的列( ALTER TABLE ADD [NewId] INTEGER 然后运行下面的命令来填充新的ID列。

WITH Cte
AS
(
    SELECT *
    , ROW_NUMBER() OVER(ORDER BY [Your GUID Column Here] DESC) AS RowNumber
    FROM YourTable
)
UPDATE Cte
SET [NewId]= RowNumber
GO

在这里,你有一个新的ID列,你可以使用集群主键。


63
投票

首先将数据类型改为任何其他支持的类型,如varbinary或任何其他类型,然后你可以将其转换为你想要的。


0
投票

参考 这个 帖子。

删除当前的列,并添加一个新的列,所需的数据类型应该解决你的问题。

© www.soinside.com 2019 - 2024. All rights reserved.