在两个表之间创建主键/外键关系

时间:2013-03-29 12:32:50

标签: sql sql-server database-design

我正在设置一些非常简单的测试表,并希望将列USERKEY作为我的表tb_TestUSERS的主键,然后将列USERKEY作为表中的外键tb_TestFACT。然后在此主键和外键之间建立关系。我希望能够使用脚本完成所有这些工作。

到目前为止,我只有基本的表脚本:

CREATE TABLE WH.dbo.tb_TestFACT
(DATEKEY INT,USERKEY INT);
INSERT INTO WH.dbo.tb_TestFACT
    values
    (1,1),
    (2,1),
    (3,2),
    (4,2),
    (5,2),
    (6,3),
    (7,3);

CREATE TABLE WH.dbo.tb_TestUSERS
(USERKEY INT,NAME VARCHAR(10));
INSERT INTO WH.dbo.tb_TestUSERS
    values
    (1,'FRED'),
    (2,'PHIL'),
    (3,'JACKO'); 

2 个答案:

答案 0 :(得分:4)

CREATE TABLE tb_TestUSERS
(
    UserKey INT NOT NULL,
    Name VARCHAR(30),
    CONSTRAINT tb_pk PRIMARY KEY (UserKey),
    CONSTRAINT tb_uq UNIQUE (Name)
)
GO

CREATE TABLE tb_TestFACT
(
    UserKey INT NOT NULL,
    DateKey INT NOT NULL,
    CONSTRAINT tb_fk FOREIGN KEY (UserKey)
        REFERENCES tb_TestUSERS(UserKey),
    CONSTRAINT tb_uq1 UNIQUE (UserKey, DateKey) 
)
GO

答案 1 :(得分:1)

如果您有SQL Server Management StudioSQL Server Management Studio Express,那么您实际上可以让它为您完成。或者,您可以在UI中执行此操作并将其编写到新窗口 - 所有非常有用的工具。