谢谢各位!
12 个解决方案
#1
int 與 uniqueidentifier 不相容
#2
你的意思是先把INT转成16进制再转uniqueidentifier?
#3
只要能把int转换成uniqueidentifier类型就行!
#4
没有默认的转换算法吧,uniqueidentifier是32个16进制数字,INT是一个10进制数字,两者没什么关系吧
#5
不行。。。。。。。。。。。。。。。。。。。。
#6
DECLARE @I INT
SELECT @I=123456
SELECT CAST(CAST(@I AS varbinary) AS UNIQUEIDENTIFIER)
--40E20100-0000-0000-0000-000000000000
不管了,能出来就行了对吧
#7
那先转换成别的什么类型,在转换成uniqueidentifier类型呢?可行否?
#8
6楼的这个不行吧,如果可以你直接给我写个转换吧
这种
alter table 表
alter column 列名 类型
这种
alter table 表
alter column 列名 类型
#9
DECLARE @I INT
SELECT @I=123456
SELECT CAST(CAST(@I AS varbinary(16)) AS UNIQUEIDENTIFIER)
SELECT CAST(CAST(@I AS binary(16)) AS UNIQUEIDENTIFIER)
SELECT CAST(CAST(@I AS binary(4))+CAST(@I AS binary(4))+CAST(@I AS binary(4))+CAST(@I AS binary(4)) AS UNIQUEIDENTIFIER)
SELECT CAST(CAST(REPLICATE(CAST(@I AS binary(4)),4) AS binary(16)) AS UNIQUEIDENTIFIER)
SELECT CAST(CAST(HASHBYTES('MD5',CAST(@I AS varbinary(4))) AS binary(16)) AS UNIQUEIDENTIFIER)
SELECT CAST(CAST(HASHBYTES('MD5',CAST(@I AS varchar(20))) AS binary(16)) AS UNIQUEIDENTIFIER)
看哪种合LZ心意。
#10
能不能把它写成这种呢
alter table a表
alter column b列 类型
alter table a表
alter column b列 类型
#11
直接改表恐怕不行。
第一种办法是建一个新表,数据导过去。
第二种办法是加一个新字段,更新过去。
LZ想清楚这么做是要干嘛。
为什么要把int改成uniqueidentifier?
你改的是主键字段吗?有外键引用吗?有存储过程或程序代码引用吗?
改之前做好备份。
#12
谢谢,想到了
#1
int 與 uniqueidentifier 不相容
#2
你的意思是先把INT转成16进制再转uniqueidentifier?
#3
只要能把int转换成uniqueidentifier类型就行!
#4
没有默认的转换算法吧,uniqueidentifier是32个16进制数字,INT是一个10进制数字,两者没什么关系吧
#5
不行。。。。。。。。。。。。。。。。。。。。
#6
DECLARE @I INT
SELECT @I=123456
SELECT CAST(CAST(@I AS varbinary) AS UNIQUEIDENTIFIER)
--40E20100-0000-0000-0000-000000000000
不管了,能出来就行了对吧
#7
那先转换成别的什么类型,在转换成uniqueidentifier类型呢?可行否?
#8
6楼的这个不行吧,如果可以你直接给我写个转换吧
这种
alter table 表
alter column 列名 类型
这种
alter table 表
alter column 列名 类型
#9
DECLARE @I INT
SELECT @I=123456
SELECT CAST(CAST(@I AS varbinary(16)) AS UNIQUEIDENTIFIER)
SELECT CAST(CAST(@I AS binary(16)) AS UNIQUEIDENTIFIER)
SELECT CAST(CAST(@I AS binary(4))+CAST(@I AS binary(4))+CAST(@I AS binary(4))+CAST(@I AS binary(4)) AS UNIQUEIDENTIFIER)
SELECT CAST(CAST(REPLICATE(CAST(@I AS binary(4)),4) AS binary(16)) AS UNIQUEIDENTIFIER)
SELECT CAST(CAST(HASHBYTES('MD5',CAST(@I AS varbinary(4))) AS binary(16)) AS UNIQUEIDENTIFIER)
SELECT CAST(CAST(HASHBYTES('MD5',CAST(@I AS varchar(20))) AS binary(16)) AS UNIQUEIDENTIFIER)
看哪种合LZ心意。
#10
能不能把它写成这种呢
alter table a表
alter column b列 类型
alter table a表
alter column b列 类型
#11
直接改表恐怕不行。
第一种办法是建一个新表,数据导过去。
第二种办法是加一个新字段,更新过去。
LZ想清楚这么做是要干嘛。
为什么要把int改成uniqueidentifier?
你改的是主键字段吗?有外键引用吗?有存储过程或程序代码引用吗?
改之前做好备份。
#12
谢谢,想到了