如何在SQL Server中使一个表依赖于另一个表?

时间:2013-02-26 12:49:34

标签: sql-server entity-framework

我在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编写代码。

2 个答案:

答案 0 :(得分:2)

在两个表之间添加外键关系。在您的情况下,您可能希望将另一个int类型列添加到名为Application_Id的Account表中。然后在Application表上添加Application_Id和Id之间的外来关系。我还建议将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 Fiddle

W3 Schools Foreign Key

答案 1 :(得分:0)

使用外键概念可以解决您的问题。

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