2009-04-02 8 views

答えて

7

ほとんどの場合、一度リセットしたり、一括コピーで行を挿入したりしない限り、IDENTITY_INSERTを使用してください。もちろん、データ型がオーバーフローしないことを前提としています(印象的かもしれません)。

マルクで説明したように
2

はい。削除によって発生したギャップは再利用されません。

2

は、はいあなたが決定的に問題を解決するためにしかし、何をすべき但し書き

で次にあなたはこの順列選択

 
dteInserted datetime not null default getdate() 

を追加していることができます。

私自身私は設計しているデータベースの任意の 'データ'テーブルにこのような列を自動的に追加します。今日はストレージが安く、行の挿入日時をタイムスタンプすると常にが便利です。

+1

ここで問題となるのは、インポート時に行を高速に挿入すると、datetimeの粒度がSQL Server上で十分に小さくないため、重複したdatetimesが得られるということです。 – Jon

+1

ええと、良い点ですが、私はむしろ、通常のトランザクションデータベース操作を通して挿入するという考えに焦点を当てていました。 OK、その場合の答えは、IDが順番になっていることですが、タイムスタンプを含める必要があります。そのため、問題を検出できるようになります。 – Cruachan

+1

... IDインセットやリセットなど、仮定を無効にする。 – Cruachan

関連する問題