2018年1月4日木曜日

[SQL Server]sequenceのSTART WITHは必ず指定する

SQL Serverでシーケンスオブジェクトを作成した場合、START WITHは指定した型の最小値となるので、START WITHは必ず指定しよう。
指定しなかった場合は、デフォルトの型がbigintなので、START WITHは-9223372036854775808となるので、想定外な値から値が採番される…

START WITHを指定しない場合

1> create sequence test 
2> go
1> 
1> select start_value from sys.sequences where name = 'test'
2> go
start_value
-----------
-9223372036854775808


START WITHを指定した場合


1> create sequence test start with 1
2> go
1> 
1> select start_value from sys.sequences where name = 'test'
2> go
start_value
-----------
1