我有台汽车将字符串转换ID为int自动增量
Id nvarchar(25) PK
Name nvarchar(max)
而且有一些记录。
Id Name
CodeXYZ Namezxc
CodeQAZ Nameasd
CodeEDC Nameqwe
我想转换Id列到int自动增量:
Id Name
1 Namezxc
2 Nameasd
3 Nameqwe
,但我不知道如何使它:/ 你能帮助我吗?
我有台汽车将字符串转换ID为int自动增量
Id nvarchar(25) PK
Name nvarchar(max)
而且有一些记录。
Id Name
CodeXYZ Namezxc
CodeQAZ Nameasd
CodeEDC Nameqwe
我想转换Id列到int自动增量:
Id Name
1 Namezxc
2 Nameasd
3 Nameqwe
,但我不知道如何使它:/ 你能帮助我吗?
在SQL Server Management Studio中,您可以右键单击表并对其进行修改。
一旦在那里,选择你想自动增加的列。您应该可以将其更改为INT。
然后看看列属性;其中一个是IDENTITY,它是一个独特的自动递增字段。通过启用该属性并保存更改,您可以获得所需的内容。
如果您在该字段中有重复,或者无法转换为INT的值,则会失败。您需要在表上运行UPDATE以摆脱任何问题或首先复制。
编辑:
自己的留言 “的所有记录都是字符串”。如果字符串值不会强制转换为INT,那么您就无法得到要求。看起来像“AAABC”的字段不能自动递增。
创建一个与第一个表(TBLA)的表结构相匹配的新表(TBLB),除了用ID列的int标识插入列创建第二个表。
然后
INSERT INTO TBLB (名称) SELECT名字从TBLA
确保您,让您不选择或插入标识列映射列。
然后您可以删除原始表并重命名新表。
这有点痛苦,但应该得到你想要的。您甚至可以向TBLB添加一列以将原始ID保留在新列中。
我不知道是否有可能与SQL Server,但与MySQL你可以使用:
SET @tempVariable := 0;
UPDATE block SET id = (@tempVariable:[email protected]+1);
的想法是发起递增与UPDATE每一次的变量。
您是否试过在设计视图中打开表格并将其更改为int。当你保存它会给你一个警告,但应该保存。然后,将列设置为标识规范为true。假定该列中的数据都是整数,否则它可能不起作用。 – Kamal 2010-10-07 09:35:56
所有记录都是字符串:/ – user278618 2010-10-07 09:40:00