我有臺汽車將字符串轉換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