这是我的查询.我想要做的是每周运行此查询,因此表PlanFinder.InvalidAwps将有新记录.但是当我运行查询时,它给了我这个错误:
There is already an object named 'InvalidAwps' in the database.
Run Code Online (Sandbox Code Playgroud)
我无法更改表名.它必须保持不变.那么我怎么能每周运行这个查询来保持表名呢?
-------------------------------------
IF EXISTS (SELECT * FROM sys.objects
WHERE object_id = OBJECT_ID(N'[PlanFinder].[InvalidAwps]')
AND type in (N'U'))
BEGIN
DROP TABLE [PlanFinder].[InvalidAwps]
END
SELECT DISTINCT P.Ndc Ndc, A.Price AwpUnitCost INTO PlanFinder.InvalidAwps
FROM
PlanFinder.PlanFinder.HpmsFormulary P
LEFT JOIN (SELECT Ndc, Price FROM MHSQL01D.Drug.FdbPricing.vNdcPrices
WHERE PriceTypeCode = '01' AND CurrentFlag = 1) A
ON P.Ndc = A.Ndc
WHERE (A.Ndc IS NULL OR A.Price <= 0 OR A.Price IS NULL)
AND p.Ndc IS NOT NULL
----------------------------------------------
Run Code Online (Sandbox Code Playgroud)
为什么每次都要完成删除和重新创建表格的工作?相反,创建一次表然后继续:
truncate table [PlanFinder].[InvalidAwps]
go
insert into [PlanFinder].[InvalidAwps]
(Ndc, AwpUnitCost)
SELECT DISTINCT P.Ndc Ndc, A.Price AwpUnitCost
FROM
PlanFinder.PlanFinder.HpmsFormulary P
LEFT JOIN (SELECT Ndc, Price FROM MHSQL01D.Drug.FdbPricing.vNdcPrices
WHERE PriceTypeCode = '01' AND CurrentFlag = 1) A
ON P.Ndc = A.Ndc
WHERE (A.Ndc IS NULL OR A.Price <= 0 OR A.Price IS NULL)
AND p.Ndc IS NOT NULL
Run Code Online (Sandbox Code Playgroud)