저는 SQL이 매우 새로워서 외래 키 문제로 어려움을 겪고 있으므로 도움을 요청하고 싶습니다. 나는 결과를 얻지 않고 며칠 동안 수색과 인터넷 검색을 해왔다.SQL 외래 키가 NULL을 반환 함
제 문제는 기본 키와 외래 키가있는 기본 키가있는 테이블을 2 개 생성한다는 것입니다. 당신은 예제 코드 아래에 볼 수 있습니다 내가 좋아 아래이 테이블에 데이터를 삽입하고보다
CREATE TABLE CarList
(
C_Id int IDENTITY (1,1) PRIMARY KEY,
Car_Model nvarchar(255),
)
:
다음과 같이 내가 외국 키를 사용하여 두 번째 테이블을 생성하고보다INSERT INTO CarList (Car_Model)
VALUES ('AUDI'), ('BMW'), ('PORSCHE')
:
CREATE TABLE Series
(
S_Id int IDENTITY (1,1) PRIMARY KEY,
Car_Series nvarchar(255),
Car_Id int FOREIGN KEY REFERENCES CarList(C_Id)
)
그리고 마지막 단계 인 I 번째 테이블의 데이터를 삽입하고있다 :
INSERT INTO Series(Car_Series)
VALUES ('911c'), ('330d'), ('80TDI')
012,351을
여기 내 문제가 실제로 발생합니다. 모두 설정하고 외래 키로 테이블을 호출하면 외래 키 값을 가져야하는 열이 NULL
으로 표시됩니다. SQL Server Management Studio에서 두 테이블 간의 관계를 수행했지만 그 결과는 여전히 동일합니다.
그런 다음 조인과 두 테이블을 매핑하려고합니다. 내가 인터넷에서 읽은 모든 것은 기본적으로 값이 외래 키 열에 나타나야하는지 또는 적어도 내가 요점을 얻지 못하고 있는지를 말하는 것이 아닙니다. 첫 번째 테이블 자동차 모델이 ID로 호출하는 두 번째 테이블에 해당하도록하고 싶습니다. 따라서 AUDI 인 첫 번째 테이블에서 ID 1을 호출하여 두 번째 테이블에 80TDI 시리즈의 ID를 지정하려고합니다.
도와 주시겠습니까? 시리즈 테이블을 채울 때
당신에게 마크 감사합니다! 이제는 분명합니다. 내 마음에 오는 유일한 것은 - 두 번째 테이블에 삽입 할 엄청난 양의 데이터가 있다면 어떨까요? 해당 번호를 추가하는 데 너무 많은 시간이 걸리지 않을까요?이를 위해 자동화 된 옵션이 있습니까? 아니면이 방법을 사용해야합니까? – TheShadow
아니요. 동일한 삽입 문에있는 한 눈에 띄게 오버 헤드가 증가하지 않아야합니다. 또한 데이터의 양은 단지 정수이므로 낮습니다. –
감사합니다. Mark! 지금은 분명합니다 :) – TheShadow