复制代码代码如下:INSERTINTO#DirtyOldWIPBOMSELECTTOP(100)PERCENTdbo.WIP_BOM.Model,dbo.WIP_BOM.PartNumber,WIP_BOM.WIPFROMdbo.WIP_BOMleftOUTERJOINdbo.BOM_CHINAONLTRIM(dbo.WIP_BOM.Model)=LTRIM(dbo.BOM_CHINA.Model)ANDLTRIM(dbo.WIP_BOM.PartNumber)=LTRIM(dbo.BOM_CHINA.PartNumber)ANDdbo.WIP_BOM.Qty=dbo.BOM_CHINA.QtyANDBOM_CHINA.WIP=WIP_BOM.WIPWHERE(dbo.BOM_CHINA.ModelISNULL)ANDEXISTS(SELECT*FROMdbo.BOM_CHINAWHEREWIP=WIP_BOM.WIPANDLTRIM(Model)=LTRIM(WIP_BOM.Model))这样就可以成功。复制代码代码如下:但SELECTTOP(100)PERCENTdbo.WIP_B
INSERT INTO #DirtyOldWIPBOM SELECT TOP (100) PERCENT dbo.WIP_BOM.Model, dbo.WIP_BOM.PartNumber,WIP_BOM.WIP
FROM dbo.WIP_BOM left OUTER JOIN dbo.BOM_CHINA ON LTRIM(dbo.WIP_BOM.Model) = LTRIM(dbo.BOM_CHINA.Model) AND LTRIM(dbo.WIP_BOM.PartNumber) = LTRIM(dbo.BOM_CHINA.PartNumber) AND dbo.WIP_BOM.Qty = dbo.BOM_CHINA.Qty AND BOM_CHINA.WIP=
WIP_BOM.WIP WHERE (dbo.BOM_CHINA.Model IS NULL) AND EXISTS(SELECT * FROM dbo.BOM_CHINA WHERE WIP = WIP_BOM.WIP AND LTRIM(Model) = LTRIM(WIP_BOM.Model))
这样就可以成功。
但SELECT TOP (100) PERCENT dbo.WIP_BOM.Model, dbo.WIP_BOM.PartNumber,WIP_BOM.WIP into #DirtyOldWIPBOM
FROM dbo.WIP_BOM left OUTER JOIN dbo.BOM_CHINA ON LTRIM(dbo.WIP_BOM.Model) = LTRIM(dbo.BOM_CHINA.Model) AND LTRIM(dbo.WIP_BOM.PartNumber) = LTRIM(dbo.BOM_CHINA.PartNumber) AND dbo.WIP_BOM.Qty = dbo.BOM_CHINA.Qty AND BOM_CHINA.WIP=
WIP_BOM.WIP WHERE (dbo.BOM_CHINA.Model IS NULL) AND EXISTS(SELECT * FROM dbo.BOM_CHINA WHERE WIP = WIP_BOM.WIP AND LTRIM(Model) = LTRIM(WIP_BOM.Model))
会提示error "There is already an object named '#DirtyOldWIPBOM' in the database"
为什么?
[笔记]:千万不要用游标,用临时表和表变量代替游标会极大的提高性能,今天用游标处理700行数据用了2小时,用临时表不到1秒就搞定。
声明:本文内容来源自网络,文字、图片等素材版权属于原作者,平台转载素材出于传递更多信息,文章内容仅供参考与学习,切勿作为商业目的使用。如果侵害了您的合法权益,请您及时与我们联系,我们会在第一时间进行处理!我们尊重版权,也致力于保护版权,站搜网感谢您的分享!