Tôi đang sử dụng SQL Server 2005.INSERT dữ liệu từ một bảng vào nhiều bảng
Tôi đang di chuyển dữ liệu từ cơ sở dữ liệu hiện tại (bảng đơn) sang cơ sở dữ liệu mới (chuẩn hóa - nhiều bảng). Trong cơ sở dữ liệu mới, tôi có một bảng cơ sở (chúng ta hãy gọi nó là "BaseTable") và nhiều bảng khác (hãy gọi chúng là "DependentA"
và "DependentB"
). Một số dữ liệu từ cơ sở dữ liệu cũ sẽ đi đến BaseTable, và một số sẽ đi đến hai cơ sở dữ liệu kia. BaseTable có mối quan hệ một-một với cả DependentA và DependentB, sử dụng Id của chúng như khóa ngoài.
Vì vậy, đây là câu hỏi của tôi. Làm cách nào để di chuyển dữ liệu? Đây là một truy vấn tôi đã cố gắng, đó là làm việc ngoại trừ một điều: các phím nước ngoài trong BaseTable cho hai khác là giống hệt nhau, thay vào đó hoặc có một khác nhau một.
Begin SQL:
BEGIN TRANSACTION
DECLARE @dep1Id int
DECLARE @dep2Id int
INSERT INTO DependentA (column1, column2)
SELECT c1, c2
FROM OldDatabase.OldTable
SELECT @dep1Id = Scope_Identity()
INSERT INTO DependentB (column3, column4)
SELECT c3, c4
FROM OldDatabase.OldTable
SELECT @dep2Id = Scope_Identity()
INSERT INTO BaseTable (column5, dependentTable1Id, dependentTablr2Id)
SELECT c5, @dep1Id, @dep2Id
FROM OldDatabase.OldTable
COMMIT
Do bất kỳ của các cột trong bảng phụ thuộc giữ giá trị duy nhất mà có thể được tra cứu? (ví dụ: c1 & c3) – CAbbott
Có một khóa chính trong các bảng đó (DependentA và DependentB). – jchapa