我不知道如何表达这个问题,但我试图这样做:
alter table [TEMP]
add SEQID int identity(1,1)
这有效;但是,我真正需要的是一个浮点列而不是一个int:
alter table [TEMP]
add SEQID **FLOAT** identity(1,1)
我认为这是非法的。如果不是,请告诉我。 是否有解决浮动ID列的工作?
编辑:有没有办法将标识列创建为int,然后删除标识属性,然后将列转换为浮点数?
答案 0 :(得分:3)
你可以做你想做的事:
create table temp (
id int identity(1,1),
fid as cast(id as float)
)
这会将id添加为整数,但是会有另一列通过将其转换为float来计算。
为什么要为旧系统创建新的ID?
或者,您可以将计算列添加到现有表中:
alter table temp add fid as cast(id as float)
答案 1 :(得分:-1)
我不知道我是否理解为什么你想要一个浮点ID。该列通常只是存储为int(bigint,smallint,取决于表...),但int将唯一地标识表的每一行,以允许您查询每一行而不会造成数据污染。您只需确保正确加入表格。
如果你真的确定使用浮点数,那么我认为这就足够了,除非我遗漏了一些东西:
alter table [TEMP]
add SEQID float identity(1,1)