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

I'm*_*ing 22 sql-server ssms uniqueidentifier

我即将将我的数据库从使用旧成员资格迁移到mvc4中包含的成员资格,而mvc4使用的是int代替guid.

更改类型时,我收到以下错误:

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

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

Muh*_*eeq 58

首先将数据类型更改为任何其他受支持的类型,如varbinary或任何内容.然后你可以从那里转换成你想要的.


jaz*_*ato 8

您必须添加新列(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
Run Code Online (Sandbox Code Playgroud)

您有一个新的ID列,您可以使用群集主键