存储过程临时表

写存储过程时,如果join的表是固定的,那么可以不必声明临时表及其中的字段,直接:
select (要查询的字段名)into 临时表名
比如下面这段sql 语句:

SELECT Distinct a.SKU_Id, a.Quantity, d.SupplierId into #tbInboundPlan   --直接将字段值插入临时表
FROM [ms_inbound_draftitem] a
Left Join ms_goodsitem b on a.SKU_Id = b.Id
Left Join ms_goods c on b.SPU = c.SPU
Left Join ms_supplier_item d on c.Id = d.GoodsId
WHERE InboundDraftId = @Id And a.Status > 0 And (d.SortId=1 Or d.SortId IS NULL) 

不过需要注意的是:如果sql 语句是包含在IF语句中的,那么不能这么些。因为编译器在编译时会自动跳过IF语句中的内容,他只编译静态的内容。

发布了37 篇原创文章 · 获赞 10 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_38404507/article/details/99690397