很抱歉,如果对此的答案非常简单,我已经护目镜,找不到它。
我有一份隔夜运行的工作并执行以下操作
delete from [CLOUD].[SAP-Data].TABLE_A
INSERT INTO [CLOUD].[SAP-Data].TABLE_A
select *
from ACTA.TABLE_B
where
EXPIRY_DATE > CONVERT(VARchar(30), GetDate(),102)
然而,ACTA.TABLE_B中的信息有时没有刷新,并且它不包含正确的记录数。我需要停止
delete and insert into [CLOUD].[SAP-Data].TABLE_A
在这些场合发生。
当问题发生时,ACTA.TABLE_B中记录的行数将始终低于100,000。
任何帮助都会非常感激。
谢谢 LYNG
答案 0 :(得分:0)
您可以使用if来控制程序的流程
IF(select count(*) from from ACTA.TABLE_B where
EXPIRY_DATE > CONVERT(VARchar(30), GetDate(),102) ) > 100000
BEGIN
delete from [CLOUD].[SAP-Data].TABLE_A
INSERT INTO [CLOUD].[SAP-Data].TABLE_A
select *
from ACTA.TABLE_B
where
EXPIRY_DATE > CONVERT(VARchar(30), GetDate(),102)
END
ELSE
BEGIN
PRINT 'BAD DATA Skipping delete and Insert'
END
答案 1 :(得分:0)
以下代码可能对您有所帮助
IF ((SELECT COUNT(*) FROM [CLOUD].[SAP-Data].TABLE_A WHERE
EXPIRY_DATE > CONVERT(VARCHAR(30), GETDATE(),102)) > 100000)
BEGIN
DELETE FROM [CLOUD].[SAP-Data].TABLE_A
INSERT INTO [CLOUD].[SAP-Data].TABLE_A
SELECT *
FROM ACTA.TABLE_B
WHERE
EXPIRY_DATE > CONVERT(VARCHAR(30), GETDATE(),102)
END
ELSE
BEGIN
PRINT 'Data Refreshing Problem'
END
谢谢