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

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

Patricia Arquette
リリース: 2024-12-25 07:17:20
オリジナル
643 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート