2017-01-05 93 views
0

我有問題,將在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 無法創建約束。查看以前的錯誤。

+0

嘗試將PredracunID作爲表Predracun的主鍵 –

+0

您忘記包含失敗的DDL。你能否也請包括它? – Mureinik

+0

你缺少主鍵,列也是無效的 – TheGameiswar

回答

0

使用下面的腳本

CREATE TABLE Predracun ( PredracunID詮釋不爲空標識(1,1), Iznos爲nvarchar(255), 基準日期, 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]

創建表Racun ( RacunID INT不爲空身份(1,1), Sifra爲nvarchar(255), BrojRacuna爲nvarchar(255) )

創建表Prijem ( PrijemID詮釋不爲空身份(1,1), PredracunID INT, 基準日期, OPIS爲nvarchar(255) )

ALTER TABLE Prijem 附加約束FK_PrijemPredracun 外鍵(PredracunID) 參考Predracun(PredracunID)

注意:只能在參考表的主鍵列或唯一鍵列上創建外鍵。你在腳本中缺少兩件事。 1. Predracun表沒有任何密鑰(唯一或主要)列 2.要在Prijem表中創建外鍵,您必須在create table語句中具有PredracunID列。

希望這會幫助你。如果這解決了你的錯誤。請將此標記爲答案

2

PredRunID列在表格中不存在。因此它不能用作外鍵。