我有两张桌子
SELECT * FROM dbo.VMM_Table_20120210 table 1
,此表的输出为
vehicle_Make vehicle_model
---------------------------
01 000
01 111
01 112
01 113
01 114
01 115
01 117
像这样,上表中有993条记录
和第二个表是
SELECT * FROM dbo.TBL_VEHICLE_MODEL_NEW
,此表的输出为
vmodel_id vmodel_vmake_code vmodel_type vmodel_code
---------------------------------------------------------------------------
1 01 t 7AV
2 01 c 7AE
此表中有UPTO 1107记录
要求是我需要将vehicle_make与vmodel_vmake_code和vehicle_model与vmodel_code进行比较,如果第二个表中没有数据,我需要从第一个表中插入它,如果数据在那里我需要更新数据
我需要在程序中使用游标来循环每一行,请在这种情况下帮助我
答案 0 :(得分:1)
我假设你的标签是针对SQL-Server的,而不是单独的SQL和Server,所以我建议MERGE
操作。从问题中可以清楚地看到一些细节,比如匹配时要执行的更新,以及如何获取vmodel_type和vmodel_Code的值,所以我无法提供完美的答案,但这应该让你开始:
MERGE INTO dbo.TBL_VEHICLE_MODEL_NEW t
USING dbo.VMM_Table_20120210 c
ON t.vmodel_vmake_code = c.vehicle_Make AND t.vmodel_code = c.vehicle_model
WHEN MATCHED THEN
UPDATE SET vmodel_type = 'A' -- CHANGE TO WHATEVER YOU WANT TO HAPPEN WHEN THE DATA EXISTS IN TABLE 2
WHEN NOT MATCHED THEN
INSERT VALUES (c.Vehicle_Make, c.Vehicle_Model, 't', '7AV');
-- WHATEVER YOU WANT TO HAPPEN WHEN THE RECORD IN TABLE 1 DOES NOT EXIST IN TABLE 2
有关MERGE
的更多信息,请参阅MSDN。