2017-07-27 3 views
1

私は偽の顧客情報(名前、住所、性別など)を持つフラットなテーブルを持っています。すべての値がnullのcustomer_idというフラット・テーブルに列を追加しました。今、私はすべての顧客に異なるIDを追加しようとしていますが、それを達成する方法がわかりません。私はCUSTOMER_IDがテーブル内のすべての行に異なる番号を付けてください

ALTER PROCEDURE [dbo].[add_id] 
AS 
BEGIN 
    declare @customer_id int 
    declare cursor1 cursor 
    for 
    select 
     customer_id 
    from 
     flat_customer 
    open cursor1 
    fetch next from cursor1 into @customer_id 
    while(@@FETCH_STATUS = 0) 
    begin 
     if(@customer_id is null) 
     begin 
      exec get_next_id_by_name 'Customer', @customer_id output 
     end 
     fetch next from cursor1 into @customer_id 
    end 
END 

主キーにしたいので、これは私がこれまで行ってきたものですが、私はそのテーブルの主キーを持っていない私はありませんので、私はまだ、SQLで始まりですちょうどこれを行う行

+0

をあなたが投稿したコードと間違っているものを言っていませんか?これを実現するには、customer_idをID列として使用して新しい空の表を作成し、既存の表のデータをそのcustomer_id列を除いて挿入します。 –

+0

これは非標準SQLです。どのDBMSを使用していますか? –

+0

SSMSを使用しています –

答えて

1

によってトラフ行を解析する方法がわから:

DECLARE @i int = 1; 
UPDATE flat_customer 
SET customer_id = @i, 
    @[email protected]+1; 
関連する問題