2014-05-06 137 views
0

我有一個名爲Customer的表,有幾個字段,例如FirstName,LastName,Birthdate。稍後,我添加了一個新字段CustomerId。 我想在此表中的每一行添加一個序號,我該怎麼做?具有不同值的更新錶行

在客戶應1000000

啓動某些行已經有一個客戶編號,在1000000

我想創建與一個變量增加1循環的過程的數量。

CREATE myFunction() 
@id int = 1000000 
BEGIN 
    FOR EACH row in [tablename] 
    BEGIN 
     IF CustomerId is null then CustomerId = @id 
     SET @id = @id + 1 
    END  
END; 
+0

而這是怎麼去?它有用嗎? – PhistucK

回答

1

只需添加新列作爲標識和SQL Server會自動依次增大的整數popiulate它。

Alter Table {TABLENAME} 
ADD CustomerId Identity (100000, 1) Integer NOT NULL 

既然你提到一些列已經有一個客戶ID,然後我就用上面添加一個新列,使用不同的名稱,然後執行更新查詢更新現有CustomerID列它在哪裏沒有以你需要做的任何方式填充以符合你的要求(重複是好的?如果不是,你能改變那些現有的CustomerId值嗎?如果沒有,當衝突時其他值應該是什麼?等。

+0

但是我想選擇數字序列,我希望它以100000開頭。而且有些行已經有了CustomerId。 – Natalia

+0

然後添加標識種子值爲100000的新列。請參閱此鏈接http://msdn.microsoft.com/en-us/library/ms186775.aspx –

+0

我該如何處理已具有值的行在CustomerId中? – Natalia

0

正如Charles提到的,您可以添加標識列。

要做到這一點:

alter table CUSTOMERS 
add ID int Identity(1,1) constraint PK_Customers primary key 

你也可以做到這一點,而不將其設定爲在主鍵與

alter table CUSTOMERS 
add ID int Identity(1,1)