'Number of referencing columns in foreign key differs from number of referenced columns error?

I am currently using SQL-Server. I am unable to understand this error regarding a schema for Flight_Leg and Leg_Instance in the following code:

/*The relation _Flight_Leg_ contains information about a flight segment within that route*/
Create Table Flight_Leg(
    Leg_number int not null,
    Departure_airport_code varchar(3),
    Scheduled_departure_time varchar(6),
    Arrival_airport_code varchar(3),
    Scheduled_arrival_time varchar(6),

    /*The maximum number of flight legs(Leg_number in the FLIGHT_LEG) cannot exceed 4*/
    CHECK (Leg_number<=4),

    Flight_number varchar(255) not null UNIQUE FOREIGN KEY REFERENCES Flight(Flight_number),
    PRIMARY KEY (Leg_number,Flight_number),
);

/*The relation _Leg_instance_ contains information on a flight leg from a particular day*/
Create Table Leg_Instance(
    Date date not null,
    Number_of_available_seats int,
    Airplane_id int, 
    Departure_airport_code varchar(3),
    Departure_time varchar(6),
    Arrival_airport_code varchar(3),
    Arrival_time varchar(6),

    Flight_number varchar(255) not null UNIQUE FOREIGN KEY REFERENCES Flight,
    Leg_number int not null FOREIGN KEY REFERENCES Flight_Leg(Leg_number,Flight_number),
    PRIMARY KEY (Flight_number,Leg_number, Date)
);

The specific part of Leg_number int not null FOREIGN KEY REFERENCES Flight_Leg(Leg_number,Flight_number),that is generating the error. Thank you in advance!



Solution 1:[1]

Instead of:

Leg_number int not null FOREIGN KEY REFERENCES Flight_Leg(Leg_number,Flight_number),

You shouldn't be associating a multi-column foreign key directly to a single column (and you should always name constraints and provide full references to object names):

...
Leg_number int not null,
CONSTRAINT FK_FlightLeg 
   FOREIGN KEY(Leg_number, Flight_number)
   REFERENCES dbo.Flight_Leg(Leg_number,Flight_number),
...

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Aaron Bertrand