MS SQLに2つの異なるテーブル、たとえばユーザーとグループがあり、どちらもID列が必要です。2つのID列に自動増分を作成することは可能ですか?これら2つのテーブルに共通の情報を含む3番目のテーブルが必要であり、一意のレコードを識別したいと思います。
OracleにはSEQUENCEがあります。
それは可能ですか?
ありがとう、
マーティンピルチ
MS SQLに2つの異なるテーブル、たとえばユーザーとグループがあり、どちらもID列が必要です。2つのID列に自動増分を作成することは可能ですか?これら2つのテーブルに共通の情報を含む3番目のテーブルが必要であり、一意のレコードを識別したいと思います。
OracleにはSEQUENCEがあります。
それは可能ですか?
ありがとう、
マーティンピルチ
Afaik、SQL Serverには、複数のテーブルで名前付きIDを使用できるという概念がありません(cfr。Oracles SEQUENCE
) 。
両方のテーブルからのデータを区別するためのいくつかのオプションがあります
デザインを変更できない場合は、GUIDを使用することをお勧めします。
SQL Serverの場合、Identityプロパティを取得しました。
3番目のテーブルは、外部キーを介してユーザーとグループを参照する必要があります。
3番目のテーブルの両方の列の一意性を実現するには、次のように一意性制約を使用します。
CREATE TABLE Third (
id_user INT references Users(id),
id_group INT references Groups(id),
CONSTRAINT user_group_unique UNIQUE(id_user, id_group)
);
何を探しているのか正確にはわかりませんが、次のIDENTITY
プロパティを使用してSQLServerに自動インクリメントフィールドを設定できます。
CREATE TABLE new_employees
(
id_num int IDENTITY(1,1),
fname varchar (20),
minit char(1),
lname varchar(30)
);
上記の例(リンクされたページから取得)では、id_num
フィールドは1のシードから開始し、1ずつインクリメントして自動的にインクリメントします。
各テーブルにこのようなフィールドを設定し、2つをリンクする多対多のテーブルを作成できます。