2016-08-12 14 views
1

既に作成されたシーケンスの型をINTからBIGINTに変更したいと考えています。 私は可能な変更の型を検索しましたが、より多くの値を必要とするため、型intは、最初に宣言されたbigint型に変更する方法を見つけることができませんでした。 よろしく、SQL Serverのint型からbigint型に変更する方法

+0

私のトピックにありません。私はシーケンスを変更するだけでよい。それ以外の方法がない場合は、変数にnextvalを入れてドロップし、再度作成して次の値として記録された値を設定します – BogdanM

+0

最後には、IDENTITYではなくSEQUENCESを使用します。現在のデータベース構造とロジックは、識別子ではなくシーケンスで構成されています。私は10×2シーケンス(scdテーブルでは10、scd2テーブルでは10)があり、IDに切り替えるには複雑すぎる – BogdanM

+1

ドロップと再作成が唯一の方法です。カウンタが作成されると、そのカウンタの基本タイプを変更することはできません。 – RBT

答えて

1

  1. が名= 'SequenceName' sys.sequences FROM

    SELECT現在の値以下のクエリを使用して、シーケンスの現在の値を検索し、次のように試してみてください。

    50を使用してシーケンスのあなたの現在の値が50

  2. ドロップであると仮定し、あなたの順序を再作成しますスタート(ステップ1で見つかった値)

    ドロップシーケンスSequenceName

    CREATE SEQUENCE SequenceName 
        AS bigint 
        START WITH 50 
        INCREMENT BY 1 
        MINVALUE 50 
        MAXVALUE 9999999999.... 
        CYCLE 
    
1

参考までに、シーケンスオブジェクトのデータ型を変更することはできません。 intデータ型に変更するには、所有者は順序オブジェクトを削除し、正しいデータ型でオブジェクトを再作成する必要があります。 :)

src:https://msdn.microsoft.com/en-us/library/ff878572.aspx

関連する問題