Нет, если вы создаете внешний ключ в дочерней таблице, он не будет автоматически заполняться при вставке родительской строки. Если вы думаете об этом, это имеет смысл. Допустим, у вас есть таблица типа:
CREATE TABLE dbo.Students
(
StudentID INT IDENTITY(1,1) PRIMARY KEY,
Name SYSNAME
);
CREATE TABLE dbo.StudentLoans
(
LoanID INT IDENTITY(1,1) PRIMARY KEY,
StudentID INT FOREIGN KEY REFERENCES dbo.Students(StudentID),
Amount BIGINT -- just being funny
);
Вы предлагаете, чтобы при добавлении строки в Students
система автоматически добавляла строку в StudentLoans
, но что, если этот студент не имеет ссуды? Если у студента есть кредит, какой должна быть сумма? Должна ли система выбрать случайное число?
Как правило, в этом случае происходит добавление студента и его займа одновременно. Поэтому, если вы знаете сумму кредита и имя студента, вы можете сказать:
DECLARE
@Name SYSNAME = N'user962206',
@LoanAmount BIGINT = 50000,
@StudentID INT;
INSERT dbo.Students(Name)
SELECT @Name;
SELECT @StudentID = SCOPE_IDENTITY();
INSERT dbo.StudentLoans(StudentID, Amount)
SELECT @StudentID, @LoanAmount;