SQLServer向临时表插入数据示例
2014-06-27来源:

SQLServer向临时表插入数据,用临时表和表变量代替游标会极大的提高性能,下面有个示例,大家可以参考下。

代码如下:

INSERTINTO#DirtyOldWIPBOMSELECTTOP(100)PERCENTdbo.WIP_BOM.Model,dbo.WIP_BOM.PartNumber,WIP_BOM.WIP

FROMdbo.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_BOM.Model,dbo.WIP_BOM.PartNumber,WIP_BOM.WIPinto#DirtyOldWIPBOM

FROMdbo.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))

会提示error"Thereisalreadyanobjectnamed'#DirtyOldWIPBOM'inthedatabase"

为什么?

[笔记]:千万不要用游标,用临时表和表变量代替游标会极大的提高性能,今天用游标处理700行数据用了2小时,用临时表不到1秒就搞定。

更多信息请查看IT技术专栏

2025公考·省考培训课程试听预约报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
推荐信息
Baidu
map