Tôi đang sửa đổi cấu trúc của một cơ sở dữ liệu. Nội dung của một số cột của bảng FinancialInstlation phải được chuyển vào bảng Person . FinancialInstlation được liên kết với Người có khóa ngoại. Mỗi FinancialInstlation cần Id của Người tương ứng. Vì vậy, đối với mỗi dòng mới được chèn vào Person, id của dòng mới này (IDENTITY) phải được sao chép lại vào dòng FinancialInstlation tương ứng.
Cách rõ ràng để làm điều này là một mã T-SQL lặp. Nhưng tôi muốn biết liệu có thể làm điều đó chỉ với các hoạt động dựa trên tập hợp hay không.
Tôi tưởng tượng mức độ bên trong của một yêu cầu như vậy sẽ giống như:
INSERT INTO Person (Street1, Number1, City1, State1, PostCode1, CountryId1, WorkDirectPhone1, Fax1, Email1)
OUTPUT inserted.Id, FinancialInstitution.Id
SELECT Id, Street, Number, City, [State], PostCode, CountryId, PhoneNumber, Fax, Email
FROM FinancialInstitution;
Thật không may, có vẻ như OUTPUT không thể tương quan theo cách đó ...
Person
không? Hoặc cập nhật những cái hiện có? Hay bạn muốn chèn vàoPerson
và sau đóUPDATE FinancialInstitution
?