我可以使用数据向现有表添加外键吗?

Noo*_*per 0 sql sql-server sql-server-2008-r2

我想知道我是否可以将一个外键添加到已存在的表中,其中包含记录.

表格结构及其中的数据目前看起来像是:

书籍表:

ID | BookName | BookCode | BookEdition | AuthorID
1  |  Name1   |   Code1  |     1       |    1
2  |  Name1   |   Code1  |     2       |    2
Run Code Online (Sandbox Code Playgroud)

作者表:

ID | AuthorName
1  |  Name1 
2  |  Name2
Run Code Online (Sandbox Code Playgroud)

基本上,我想基于它添加两个表的链接AuthorID,问题是列中已经有数据,如上例所示,但这些ID是正确的,它们也存在于Authors表中.

是否可以在不重新创建表的情况下执行此操作?

Gor*_*off 5

你可以这样做alter table:

alter table books add constraint fk_books_authorid
    foreign key (AUthorId) references Authors(ID);
Run Code Online (Sandbox Code Playgroud)