ホームページ >データベース >mysql チュートリアル >SQL Server テーブルに複数の ID 列を含めることはできますか?

SQL Server テーブルに複数の ID 列を含めることはできますか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-25 07:17:20646ブラウズ

Can a SQL Server Table Have More Than One Identity Column?

SQL Server テーブルには 2 つの ID 列を含めることはできますか?

多くのデータベース設計者は、テーブル内に複数の列を自動で作成する必要性に直面しています。主キーまたはその他の目的で増分します。ただし、SQL Server では、これは直接的には可能ではありません。 Transact-SQL リファレンス ドキュメントによると、

テーブルごとに作成できる ID 列は 1 つだけです。

例:

次の SQL ステートメントを考えてみましょう。 、2 つの ID 列を持つテーブルを作成しようとします:

CREATE TABLE [dbo].[Foo](
    [FooId] [int] IDENTITY(1,1) NOT NULL,
    [BarId] [int] IDENTITY(1,1) NOT NULL
)

このステートメントは次のように失敗します。エラー:

Msg 2744, Level 16, State 2, Line 1
Multiple identity columns specified for table 'Foo'. Only one identity column per table is allowed.

代替ソリューション:

テーブル内に複数の自動インクリメント値が必要な場合は、次の代替ソリューションを検討してください:

  • 複合主キー: 複数の列を結合した主キーを作成します
  • 非 ID 列: 非 ID 列を作成し、トリガーまたはその他のメカニズムを使用してその値を手動で増加させます。
  • 別のテーブル: 自動インクリメント値を保存する別のテーブルを作成し、外部関数を使用してメイン テーブルからそれを参照します。 key.

SQL Server は複数の ID 列をネイティブにサポートしていませんが、これらの代替ソリューションは必要な機能を提供できます。

以上がSQL Server テーブルに複数の ID 列を含めることはできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。