我即将使用旧成员资格将数据库迁移到mvc4中包含的数据库,该工具使用int
而不是。连接的数据库服务器不支持从'uniqueidentifier'到'int'的转换
当改变类型我得到以下错误:
Conversion from int to uniqueidentifier is not supported on the connected database server.
如何通过SQL Server Management Studio中更改UserId
到int
?
我即将使用旧成员资格将数据库迁移到mvc4中包含的数据库,该工具使用int
而不是。连接的数据库服务器不支持从'uniqueidentifier'到'int'的转换
当改变类型我得到以下错误:
Conversion from int to uniqueidentifier is not supported on the connected database server.
如何通过SQL Server Management Studio中更改UserId
到int
?
您必须添加一个新列(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列,您可以使用一个聚集主键
上一个答案是正确的,但没有与原始值“绑定”。
你可以试试这个。但它可能会导致一个负值。
Guid g = new Guid("{cccc3333-3333-3333-cccc-cccc3333cccc}");
byte[] _bytes = g.ToByteArray();
Int64 i = ((Int64)_bytes[0]) | ((Int64)_bytes[1] << 8) | ((Int64)_bytes[2] << 16) | ((Int64)_bytes[3] << 24);
Int64 i = -3333333;
Guid g = new Guid(i, 0, 0, new byte[] {0, 0, 0, 0, 0, 0, 0, 0});
这是“我从互联网上撕下来的”之一,所以请自担风险。
我会与以前的回应从托马斯哈拉特克。但我提供这个选项。
首先将数据类型更改为任何其他支持的类型,如varbinary或任何其他类型。那么你可以从那个转换到你想要的。
它的工作原理...谢谢... – 2015-04-09 07:06:54
这些数据类型不兼容,您需要使用适合您的计算来转换它们 – Lamak 2013-02-25 14:27:09