2009-04-20 4 views
0

私はそれに手数料を持っている開発データベースを持っています。それは識別子である固有のキーであるfeeidを持っています。私が問題としているのは、プロダクションサーバー上でテーブルを更新するときに、料金や手数料が一致しないことがあるということです。これは明らかに、何かの過充電や過小充電のような、何か悪いことが起こる可能性があります。 SQL Serverでリセットアイデンティティを照合する方法はありますか?または、これを使用したくない場合の例ですか?SQL ServerのIDENTIY列をリセットする方法はありますか?これがアイデンティティ列を使用しない理由になりますか?

答えて

3
  1. は、一意のレコードを特定する以外の「何かを意味」 あなたの主キーをしないでください。 のIDをどこかにハードコードする必要がある場合は、 別の列を作成してください。 いわゆる「自然キーは、」彼らは
  2. もし、何らかの理由で は、あなたが はどちらかあなたがまたは最初のルールを に追従できず、自動的に任意の を使用していないではないだろうと判断した価値だ以上 悩みです生成されたキー値。
0

IDENTITIY INSERTをオンに設定し、IDを更新して(競合がないことを確認してから)、IDENTITIY INSERTをオフに戻します。それはどちらかのアイデンティティをリセット挿入するためにDBCC CHECKIDENTまたはTRUNCATE表

を使用するようにテーブルに

をロックしていないため、

1

ID列の動作であり、これは非常に速く、それを作るものもありますあなたは2つの設定IDENTITIY_INSERT文の間の時間中に、通常の挿入が失敗することをことを覚えて

SET IDENTITIY_INSERT ON 

--upddate/insert rows 

SET IDENTITIY_INSERT OFF 

を維持する必要がない同じ値を保つために一つのテーブルから別のIDと!

関連する問題