0

SQL Server で作成した次のテーブルがあります。

CREATE TABLE [dbo].[Application] (
    [Id]   INT            IDENTITY (1, 1) NOT NULL,
    [Name] NVARCHAR (MAX) NULL,
    CONSTRAINT [PK_dbo.Application] PRIMARY KEY CLUSTERED ([Id] ASC)
);

CREATE TABLE [dbo].[Account] (
    [Id]   INT            IDENTITY (1, 1) NOT NULL,
    [Name] NVARCHAR (MAX) NULL,
    CONSTRAINT [PK_dbo.Account] PRIMARY KEY CLUSTERED ([Id] ASC)
);

これらを変更して、アプリケーション テーブル内のアカウント テーブルへのリンクを作成する方法はありますか。そのアプリケーションのアカウントがある場合、そのアプリケーション エントリを削除できないようにするリンクはありますか? これが基本的な質問である場合は申し訳ありませんが、デザイナーの使用方法しか知らないので、SQL でこれをコーディングする方法がわかりません。

4

2 に答える 2

2

2 つのテーブル間に外部キー関係を追加します。あなたの場合、Application_Id というアカウント テーブルに別の int 型の列を追加する必要があります。次に、Application_Id と Id の間の外部関係を Application テーブルに追加します。また、Application テーブルの Id を Application_Id に変更することもお勧めします。

CREATE TABLE [dbo].[Application] (
    [Application_Id]   INT            IDENTITY (1, 1) NOT NULL,
    [Name] NVARCHAR (MAX) NULL,
    CONSTRAINT [PK_dbo.Application] PRIMARY KEY CLUSTERED ([Application_Id] ASC)
);

CREATE TABLE [dbo].[Account] (
    [Id]   INT            IDENTITY (1, 1) NOT NULL,
    [Application_Id] INT,
    [Name] NVARCHAR (MAX) NULL,
    CONSTRAINT [PK_dbo.Account] PRIMARY KEY CLUSTERED ([Id] ASC),
    CONSTRAINT fk_AccountApps FOREIGN KEY (Application_Id)
    REFERENCES Application(Application_Id)
);

SQL フィドル

W3 Schools 外部キー

于 2013-02-26T12:51:41.317 に答える
0

あなたの問題は、外部キーの概念を使用して解決できます。

http://en.wikipedia.org/wiki/Foreign_key

于 2013-02-26T13:06:35.673 に答える