問題タブ [identity-column]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - どの SQL テーブルに ID 列があるかをプログラムで判断する方法
ID 列を持つ SQL Server 2005 の列のリストと、それに対応する T-SQL のテーブルを作成したいと考えています。
結果は次のようになります。
テーブル名、列名
.net - トランザクション ロールバックを使用しても SQL ID (自動番号) がインクリメントされる
SQL Server 2005 データベースへの SQL 挿入を伴う .net トランザクションがあります。テーブルには ID 主キーがあります。
トランザクション内でエラーが発生すると、Rollback()
が呼び出されます。行の挿入は正しくロールバックされますが、次にテーブルにデータを挿入すると、ロールバックが発生しなかったかのように ID がインクリメントされます。したがって、本質的に同一性配列にギャップがあります。Rollback()
メソッドに不足している ID を再利用させる方法はありますか?
私はこれに正しい方法でアプローチしていませんか?
sql - SQL Server テーブルに 2 つの ID 列を含めることはできますか?
主キーとして 1 つの列が必要で、注文番号フィールドを自動インクリメントするには別の列が必要です。これは可能ですか?
編集:注文番号として合成番号を使用すると思います。とにかく、ありがとう。
sql - Linq to SQL - InsertOnSubmit() の後に IDENTITY 列の値を見つける方法
LINQ to SQLを使用して単純なデータをテーブルに挿入していますstored procedure
。テーブルには主キー ID 列があり、これはと my のIDENTITY
両方で列として設定されます。SQL Server
DBML
最初にInsertOnSubmit();
単一の行のデータを呼び出し、次にSubmitChanges();
その行を db にコミットするために呼び出します。IDENTITY
しかし、新しく挿入された行の行の列の値を取得する簡単な方法が必要だと思います。列の値をデータベースに提供しIDENTITY
たくありません。生成してもらいたいのです。
これはどのように処理するのが最善ですか?
asp.net - Entity Framework ID 列が機能しない
私は Entity Framework の初心者で、最初の MVC アプリケーションを作成中です。単純なエンティティのビューの作成を実装していますが、(SQL Express 2005) ID 列の主キーに問題があります。私が理解しているように、フレームワークは Identity 列を処理し、SQL データベースに ID 値を生成させる必要があります。
ID 値を設定せずにビューの作成を使用して保存しようとすると、「値が必要です」というエラーが表示されます。ID に任意の値を指定すると、データベースの Identity 値を使用してデータベースに保存されます。指定した値ではなく、T-SQL がそこまで到達すると明らかに正しく生成されます。
Identity プロパティはデータベースの ID 列に設定され、StoreGeneratedPattern はモデルの「Identity」に設定されます (以下を参照)。
プロパティ名="ID" タイプ="int" Nullable="false" StoreGeneratedPattern="アイデンティティ"
何か不足していますか?この列に値が必要ないことをモデルに伝えるにはどうすればよいですか?
sql - ID を既存の列に追加する
テーブルの主キーを ID 列に変更する必要がありますが、テーブルには既に多数の行があります。
ID をクリーンアップして ID が 1 から連続していることを確認するスクリプトがあり、テスト データベースで正常に動作します。
ID プロパティを持つように列を変更する SQL コマンドは何ですか?
database-design - Identity/Autonumber フィールドを主キーとして使用しないことを選択するのはどのような場合ですか?
私は銀の弾丸を信じるつもりはありませんが、データベース テーブルの主キー列として、シーケンスまたは自動番号付け ID 列を使用するのが本当に好きです。それらは一意であり、適切にインデックス化されており、null 値について心配する必要はありません。
一方、テーブル内に同じ目的を果たすことができる他の一意の列がある場合、それらは冗長に見える場合があります。たとえば、9 桁の郵便番号を都市ゾーンにマップするテーブルを作成しているとします。郵便番号フィールドも同様に機能します (データ形式が保証され、値が重複しないことが前提です)。
要するに、私の経験は、私たちの誰にとってもそうであるように、限られています. 自動付番列をテーブルの主キーとして使用しないことを選択するようになった他の実例と、その理由は何ですか?
これは私にとって「視野を広げる」タイプのことであり、膨大な数のデータベースを扱ってきた人たちから少し学びたいと思っています。
sql-server - ID列が同期していません
主キーとしてIdentity列を持つテーブルがあります。
数日前まではすべて順調で、このテーブルを使用しているアプリケーションはPK違反について不平を言い始めます。DBCC CHECKIDENTについて思い出すまで、最初はこれは不可能だと思いました。魔法の関数は、「現在の列の値」が「現在のIDの値」よりも高いことを教えてくれました。私は最高の価値に再シードしました、そしてすべては再びうまく見えました。
私の質問は、これが将来再び発生するのを防ぐために、この非同期の問題の考えられる原因は何ですか?そしてそれを防ぐ方法は?