簡體   English   中英

外鍵SQL Server 2012錯誤

[英]Error with foreign key SQL Server 2012

我在SQL Server 2012中添加外鍵時遇到問題

 create table Predracun
    (
    PredracunID int not null identity(1,1),
    Iznos nvarchar(255),
    Datum date,
    Opis nvarchar(255)
    )

create table Racun
(
RacunID int not null identity (1,1),
Sifra nvarchar(255),
BrojRacuna nvarchar(255)
)

create table Prijem
(
PrijemID int not null identity (1,1),
Datum date,
Opis nvarchar(255)
)

alter table Prijem
add constraint FK_PrijemPredracun
foreign key (PredracunID)
references Predracun (PredracunID)

以這種方式添加

我收到錯誤消息

消息1769,級別16,狀態1,行1外鍵'FK_UredjajPrijem'引用了引用表'Uredjaj'中的無效列'PrijemID'。 消息1750,級別16,狀態0,第1行無法創建約束。 請參閱先前的錯誤。

表prijem中不存在PredracunID列。 因此,它不能用作外鍵。

使用以下腳本:

CREATE TABLE Predracun
(
    PredracunID int not null identity(1,1),
    Iznos nvarchar(255),
    Datum date,
    Opis nvarchar(255)
    PRIMARY KEY CLUSTERED 
    (
        [PredracunID] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

create table Racun
(
    RacunID int not null identity (1,1),
    Sifra nvarchar(255),
    BrojRacuna nvarchar(255)
)

create table Prijem
(
    PrijemID int not null identity (1,1),
    PredracunID int,
    Datum date,
    Opis nvarchar(255)
)

alter table Prijem
add constraint FK_PrijemPredracun
foreign key (PredracunID)
references Predracun (PredracunID)

注意:只能在參考表的主鍵列或唯一鍵列上創建外鍵。 您在腳本中丟失了兩件事。

  1. Predracun表沒有任何鍵(唯一或主)列
  2. 要在Prijem表中創建外鍵,必須在create table語句中具有PredracunID列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM