フィールドで本当に怠惰な人のために:オンからオフに、またはその逆に切り替える単一のステートメントはありますか?IDENTITY INSERT sometable
1 に答える
いいえ、「toggel identity_insert」ステートメントはありません。正当な理由があります。
データベースによって自動生成される値には、ビジネス上の意味はありません。
ID 列を代理キーとして使用すると、データベースをシンプルに保つことができますが、ビジネス上の意味を、データベースが生成する値に帰するのは間違っています。そのため、人々は「ギャップを修正する方法」などの質問をするようになります。私のアイデンティティコラムに」(私の個人的なお気に入りの答えは、アーロン・バートランドによるものです).
実際には、自動生成された値は、使用するように設計されているため、使用する場合にのみ使用する場合に非常に役立つツールです。ID 列は、行の順序で増加 (または減少) する単純な行識別子を提供するように設計されています。テーブルに挿入されました。
そのため、set identity_insert
非常に少数の状況でのみ使用する必要があります-実際には、元の値を正確に保持したい場合に、あるテーブルから別のテーブルにデータをコピーする場合を除きます-set identity_insert
便利な別の状況は考えられません.
toggle identity_insert
これを、セッションごとに 1 つのテーブルのみが identity_insert 状態になることができるという事実と組み合わせると、せいぜいあいまいなようなものを見たくない理由を簡単に理解できるはずです。
tl;dr; ステートメントを使用する回数が限られてset identity_insert
いること、およびその制限を考えると、ステートメントを使用toggle identity_insert
することは非常に悪い考えです。