我有一个名为Customer(DATABASE AAA)的表,其中包含3个字段
Cust_id Cust_name Cust_salary
1 A 2000
2 B 3000
3 C NULL
我想将这3列的数据放在Employee(DATABASE BBB)中,其结构与Customer相同。
我想转移那些Cust_salary部分不为空的客户的记录。
这项工作仅在SSIS中完成。 Cust_id的MY值是自动生成的&在将值放入Employee_id之前,应删除Employee表。应保留自动生成的标识。
答案 0 :(得分:3)
您可以在SSIS中创建SQL执行任务并运行以下命令:
INSERT INTO Employee
(EmployeeId, EmployeeName, EmployeeSalary)
SELECT Cust_id, Cust_name, Cust_salary
FROM Customer
WHERE Cust_salary IS NOT NULL
答案 1 :(得分:2)
您将需要两个连接,一个用于每个DB,一个数据流组件,其中包含OleDBSource和OleDBDestination组件。
在OleDBSource上,您可以选择连接并编写查询,然后将绿色箭头拖到OleDBDestination。双击OleDBDestination选择目标连接和表,然后单击映射。
应该是
答案 2 :(得分:2)
SET IDENTITY_INSERT Employee ON
INSERT INTO Employee (EmployeeID, EmployeeName, EmployeeSalary)
SELECT Cust_ID, Cust_Name, Cust_Salary
FROM AAA..Customer
WHERE Cust_Salary IS NOT NULL
AND NOT EXISTS
( SELECT 1
FROM Employee
WHERE EmployeeID = Cust_ID
)
SET IDENTITY_INSERT Employee OFF
这将保持每个表中Identity标识的完整性,并且只将新Customer插入Employee表。