問題タブ [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.

0 投票する
5 に答える
3137 参照

sql-server - テーブルを自動番号付けの主キーとどのようにマージしますか?

誰もがたまにこの問題に遭遇すると思います。マージする必要のある自動番号付けの主キーを持つ2つのテーブルがあります。自動番号付けの主キーがアプリケーションで生成されたキーを優先して使用される理由はたくさんありますが、他のテーブルとのマージは最大の欠点の1つである必要があります。

発生するいくつかの問題は、IDの重複と外部キーの同期のずれです。これに取り組むためのあなたのアプローチを聞きたいです。私はいつも問題にぶつかるので、誰かが何らかの一般的な解決策を持っているかどうか非常に興味があります。

- 編集 -

GUIDまたはその他の非数値キーの使用を提案する回答に応じて、事前に自動番号キーを使用する方がよいと思われる場合(および後で後悔する場合)、または他の誰かのプロジェクトを引き継ぐ場合があります。または、使用する必要のあるレガシーデータベースを取得します。ですから、データベース設計を制御できなくなったソリューションを本当に探しています。

0 投票する
3 に答える
1072 参照

sql-server - テーブル間でデータを移動し、古いID値から新しいID値へのマッピングを生成するための最良の方法

2つのテーブルのデータを3つ目のテーブル(すべて同じスキーマを持つ)にマージし、古いID値から新しいID値へのマッピングを生成する必要があります。明らかなアプローチは、カーソルを使用してソーステーブルをループし、途中で新旧のID値を挿入することです。これを行うためのより良い(おそらくセット指向の)方法はありますか?

更新:もう1つの情報:宛先テーブルにはすでにデータがあります。

0 投票する
1 に答える
72 参照

sql - 既存の SQL DB テーブルの PK を置き換える

現在、PKが存在するDBがありますint IDENTITY。私は最近、昨年、これらをレプリケーション トポロジに追加する任務を負いました。IDENTITY フィールドを除いて、これは非常にうまく機能しています。

uniqeidentifierそれらを(GUID)に変更または置換するためのオプションを調べたいと思います。
NEW PK 列を挿入することは可能ですか?
に増やすだけのほうがいいでしょうbig intか?

他に考慮すべきことはありますか?


なぜ私がこれをやりたいのかを詳しく説明するには:

レプリケーションが IDENTITY 列に遭遇すると、その列の一意の INT を確保するために、各サブスクライバーに対して 1 ~ 1000 (デフォルト) などの ID 範囲を確保することを理解しています。加入者が多ければ多いほど、問題が大きくなる可能性があります。これにより、Identity Range Check Constraint エラーが発生し続けます。

ありがとう

0 投票する
1 に答える
134 参照

sql-server - 適切な ID 範囲のサイズを決定するのに役立ちます

~200 のサブスクライバーを持つマージ レプリケーションがあります。一部のテーブルで適切な ID 範囲サイズを決定しようとしています。レプリケーション用に設計されていない DB 構造を継承したことがわかります。したがって、すべてのテーブル PK は int IDENTITY です。残念ながら、これらのテーブルの一部は追跡フィールドなしで構築されたため、いつ挿入されたのかわかりません。そのため、必要な購読者範囲のサイズを見積もるのに苦労しています。

誰かアドバイスはありますか?

0 投票する
3 に答える
19195 参照

sql-server - データベースの ID 列を RESEED します

を使用できますか

SQL Server 2008 で ID 列の現在の値を元の値にリセットするコマンドは?

はいの場合、これは欠点を伴わずにこの操作を行う正しい方法ですか? そうでない場合、これを行う別の方法はありますか?

0 投票する
2 に答える
5232 参照

junit - テーブルでIDENTITY_INSERTをオンにして、DBユニットでロードします

ID列を持つテーブルをDBユニットでロードしようとしています。id値を自分で設定できるようにしたい(データベースで生成されたくない)。

これが私のテーブルの最小限の定義です

Xに行を挿入するには、次のSQLを実行します

問題ない。しかし、次のdbユニットXMLデータセット(RS_7_10_minimal_ini.xml)を使用してこのテーブルをロードしようとすると

次の最小限のJUnit(DBTestCase)テストケースを使用します。

次の例外で失敗します

ID列の値が指定されている行を挿入する前に、DBユニットがIDをオンにしないようです。

JdbcDataBaseTesterから取得した接続で自分自身を実行しようとしましたが、うまくいきませんでした。おそらく、新しい接続か、データをdeDBにプッシュするために使用されたのと同じ接続ではありません。

何か案が?

たくさんのご協力ありがとうございました!

オクターブ

0 投票する
2 に答える
1641 参照

sql - 同期された IDENTITY 列を持つ SQL 複数のテーブル

データベースの「クリーンアップ」に取り組んでおり、IDENTITY 列を同期する必要があります。ストアド プロシージャを使用してデータを処理し、あるテーブルから次のテーブルにミラーリングします (クリーニングしてデータ型を修正した後)。将来のある時点で、古いテーブルを切り離して新しいテーブルのみを使用したいと思うでしょう。私の質問は、両方が使用されている間に IDENTITY フィールドを同期させる方法です...古いテーブルが削除されると、 IDENTITYフィールドを変更するために、新しいものは自動インクリメントと再構築/変更を続ける必要がありますが、オプションではありません。これは可能ですか、それとももっと良い方法がありますか?

私の他の考えは、両方のテーブルの ID 列を格納するルックアップ テーブルを作成し、新しいテーブルに挿入があるときはいつでも、古い ID と新しい ID を取得してルックアップ テーブルに挿入することでした。古いテーブルが邪魔にならないと、これはちょっと面倒です。

0 投票する
6 に答える
23954 参照

c# - SQL ServerでID列をゼロにリセットしますか?

SQL Server でテーブルの ID 列をゼロにリセットするにはどうすればよいですか?

編集:

LINQ to SQL でそれを行うにはどうすればよいでしょうか?

0 投票する
1 に答える
4469 参照

sql - 列を指定せずに、ある SQL Server テーブルから同じデータベース内の別のテーブルにデータをコピーする

SQL Server ではINSERT、次のステートメントを使用して、あるテーブルから別のテーブルにすべてのデータを移動する機能があります。

ID 列を持つテーブルでこれを実行すると、コマンドを実行したにもかかわらず、次SET IDENTITY_INSERT TABLE1 ONのエラーが発生します。

An explicit value for the identity column in table can only be specified when a column list is used and IDENTITY_INSERT is ON

INSERTこれは、これが適切に機能するためには、内のすべての列を一覧表示する必要があることを意味します。現在の状況では、列名にはアクセスできず、コピーする必要があるテーブルのリストのみにアクセスできます。この制限を回避する方法はありますか?

0 投票する
2 に答える
1455 参照

oracle - EF4 Oracle ID 挿入

StoredProcedure を使用せずに ef4 からオラクルの sequence.NextVal を呼び出すことが可能かどうかは誰にもわかりませんか? 変更できないクライアントからの Oracle データベースがあるため、stroedproc はオプションではありません。私はef4 ctp5を使用しています。

感謝!