我有以下三张表:
产品: IDProduct,ProductPartNumber
手册: IDManual
ProductManual: IDProduct,IDManual
我必须根据包含以下两列的数据列表(包含2-3000项)更新产品和手册之间的链接: ProductPartNumber,NewProductPartNumber。
我想要完成的是遍历ProductManual表,将IDProduct对应于数据列表中的ProductPartNumber,将其替换为与NewProductPartNumber对应的IDProduct。
我该怎么做?我想我应该在一个事务中这样做,因为这个脚本会改变生产数据库,所以它会回滚,以防意外的事情发生。
发布于 2014-11-04 09:34:13
Way1:使用sql,您可以为数据列表创建一个临时表,并运行下面的sql:
开始转变
创建表#TempProductPartNumber(ProductPartNumber INT,NewProductPartNumber INT) --将数据列表插入到这个临时表中
更新产品集Product.ProductPartNumber = #TempProductPartNumber.NewProductPartNumber从产品内部连接ProductManual ON Product.IDProduct = ProductManual.IDProduct内部连接#TempProductPartNumber ON #TempProductPartNumber.ProductPartNumber = Product.ProductPartNumber
提交TRAN
Way2:获取产品和ProductManual的所有数据,以同样的方式使用linq更新数据,并将数据更新回DB。
发布于 2014-11-04 09:39:13
还可以使用excel中的一个公式为每一行创建一个更新脚本:
="UPDATE Product p SET p.ProductPartNumber = " & A2 & " WHERE p.ProductPartNumber = " & A1然后
="UPDATE ProductManual m SET m.IDProduct= " & A2 & " WHERE m.IDProduct= " & A1然后运行所有行
https://stackoverflow.com/questions/26731292
复制相似问题