日期:2014-05-18  浏览次数:20544 次

疑难求解:如何向带INT自增主键及外键的数据表中插入记录
原系统为EPR进销存管理系统,现为解决避税问题,另新建数据库并使其结构与原数据库一致,目的把原数据库中部分数据导入新数据库,现为解决数据导入问题头疼,举例如下:

1、主子表比如订单,订单   Order(ID,OrderDate),订单明细OrderDetail(OrderID,   ProductID,   Num,Price),两个表通过ID与OrderID建立关联,这里主键ID是自增的INT类型,OrderID是表OrderDetail的外键。现在需要从原数据库中选择一张订单插入新数据库中,在Order表中插入一条记录以及在OrderDetail表中插入若干条记录,确保两表同时更行成功。

2、商品资料信息表:主表BASPLUMAIN,     ID为自增INT类型,外键与其他附属表关联,现所有表中已存入部分数据,现需从正常使用的原程序中提取最新数据插入新数据库主表及其扩展表中


问题急待解决,请各位高手指点,切,切!!!!!



------解决方案--------------------
如此处理,参数@comid 没有应用上,另如何指定标识更名称是如下方式吗:
----------------------
指定的方式是对的.
INSERT INTO R3MIS1.dbo.BASCOMMAIN(comid,comno,comname,type ......) /*在此指定列名称列表*/
SELECT *
FROM R3MIS.DBO.BASCOMMAIN A
WHERE a.comid = @comid /*可以在此指定复制哪个comid*/
AND (A.COMID NOT IN (SELECT B.COMID FROM R3MIS1.DBO.BASCOMMAIN B))