2017-03-02 20 views
0

でSQLシーケンスを再起動するシーケンスを特定の列の最大値(+1)で開始するようにしたいと考えています。これは私がこれまで持っているものです:エイリアスを使用して

SELECT MAX(customer_number)+1 AS HighestCustomerNumberPlusOne FROM organisation; 

CREATE SEQUENCE customer_number_sequence 
    START WITH 1 
    INCREMENT BY 1; 

ALTER SEQUENCE customer_number_sequence RESTART WITH HighestCustomerNumberPlusOne; 

をそして、私はエラーを取得する:

Error: Incorrect syntax near 'HighestCustomerNumberPlusOne'. 
SQLState: S0001 
ErrorCode: 102 

正しい構文は何ですか?私はSQL Server 2012を使用していますが、T-SQLは中国語を勉強するよりも難しいので、可能であれば一般的なSQLだけを好むでしょう。

+0

はい、私の質問に答えました。ありがとうございました。質問の文言のために重複が見つかりませんでした。 –

答えて

1

ALTER SEQUENCE構文では、RESTART WITH句の定数のみを受け入れます。

したがって、クエリの結果を変数に保存する必要があります。 ALTER SEQUENCE SQLコマンドで文字列を作成し、変数の値をSQLテキストに埋め込み、EXECまたはsp_executesqlを使用して動的SQLとして実行します。

通常、シーケンスをリセットする必要はありません。

あなたは何ですか本当にが必要ですか?

関連する問題