23

我即将将我的数据库从使用旧成员身份迁移到 mvc4 中包含的那个,它使用int而不是guid.

更改类型时出现以下错误:

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

如何更改UserIdint通过 SQL Server Management Studio?

4

4 回答 4

70

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

于 2013-08-30T05:32:28.427 回答
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 列,您可以使用集群主键

于 2013-02-25T14:29:06.297 回答
2

参考这篇文章:

删除当前列并添加具有所需数据类型的新列应该可以解决您的问题。

于 2020-05-06T12:06:59.920 回答
0

据我们所知; 唯一标识符变量为 32 个字节;int 是 8 个字节,而 bigint 是 16 个字节。

我们进行转换,第一个字节和唯一标识符之后。

简单的代码;

Select CAST( CAST(cast(0 as bigint) AS varbinary)+CAST(cast(88 as bigint) AS varbinary) as uniqueidentifier)
于 2020-10-30T21:04:13.780 回答