DECLARE @DATA DATETIME
SELECT @DATA = CONVERT(datetime,'01/01/2018',103)
DECLARE @TRANSACAO_ESTOQUE TABLE(COD_TRANSACAO_ESTOQUE INT NOT NULL PRIMARY KEY)
INSERT INTO @TRANSACAO_ESTOQUE SELECT T.COD_TRANSACAO_ESTOQUE FROM TRANSACAO_ESTOQUE T WHERE T.DATA < @DATA
DELETE I
FROM TRANSACAO_ESTOQUE_ITEM I
INNER JOIN @TRANSACAO_ESTOQUE T ON T.COD_TRANSACAO_ESTOQUE = I.COD_TRANSACAO_ESTOQUE
DELETE S
FROM TRANSACAO_ESTOQUE_STATUS S
INNER JOIN @TRANSACAO_ESTOQUE T ON T.COD_TRANSACAO_ESTOQUE = S.COD_TRANSACAO_ESTOQUE
DELETE S
FROM TRANSACAO_ESTOQUE_TRANSF S
INNER JOIN @TRANSACAO_ESTOQUE T ON T.COD_TRANSACAO_ESTOQUE = S.COD_TRANSACAO_ESTOQUE
DELETE S
FROM TRANSACAO_ESTOQUE_MOVIMENTO S
INNER JOIN @TRANSACAO_ESTOQUE T ON T.COD_TRANSACAO_ESTOQUE = S.COD_TRANSACAO_ESTOQUE
DELETE S
FROM TRANSACAO_ESTOQUE S
INNER JOIN @TRANSACAO_ESTOQUE T ON T.COD_TRANSACAO_ESTOQUE = S.COD_TRANSACAO_ESTOQUE
DECLARE @CAIXA_PDV TABLE(COD_CAIXA_PDV INT NOT NULL PRIMARY KEY)
INSERT INTO @CAIXA_PDV SELECT T.COD_CAIXA_PDV FROM CAIXA_PDV T WHERE T.DATA < @DATA
DELETE S
FROM CAIXA_PDV_MOVIMENTO S
INNER JOIN @CAIXA_PDV T ON T.COD_CAIXA_PDV = S.COD_CAIXA_PDV
DELETE S
FROM CAIXA_PDV S
INNER JOIN @CAIXA_PDV T ON T.COD_CAIXA_PDV = S.COD_CAIXA_PDV
DECLARE @MOVIVIMENTO TABLE(COD_MOVIMENTO INT NOT NULL PRIMARY KEY)
INSERT INTO @MOVIVIMENTO SELECT T.COD_MOVIMENTO FROM MOVIMENTO T WHERE T.DATA_LANCAMENTO < @DATA
DELETE S
FROM DOCUMENTO S
INNER JOIN NFE N ON N.COD_GPR_DOCUMENTO = S.COD_GPR_DOCUMENTO
INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = N.COD_MOVIMENTO
DELETE S
FROM DOCUMENTO S
INNER JOIN NFE N ON N.COD_CANCELAMENTO = S.COD_GPR_DOCUMENTO
INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = N.COD_MOVIMENTO
DELETE FROM GPR_DOCUMENTO WHERE COD_GPR_DOCUMENTO NOT IN(SELECT COD_GPR_DOCUMENTO FROM DOCUMENTO)
update NFE SET COD_GPR_DOCUMENTO = NULL WHERE COD_GPR_DOCUMENTO NOT IN(SELECT COD_GPR_DOCUMENTO FROM DOCUMENTO)
update NFE SET COD_CANCELAMENTO = NULL WHERE COD_CANCELAMENTO NOT IN(SELECT COD_GPR_DOCUMENTO FROM DOCUMENTO)
update PRODUTO_SERVICO SET COD_GPR_DOCUMENTO = NULL WHERE COD_GPR_DOCUMENTO NOT IN(SELECT COD_GPR_DOCUMENTO FROM DOCUMENTO)
DELETE S
FROM VENDA_CARTAO S
INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO
DELETE S
FROM TRANSACAO_ESTOQUE_MOVIMENTO S
INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO
DELETE S
FROM TITULO_MOVIMENTO S
INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO
DELETE S
FROM NFE_REF S
INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO
DELETE S
FROM HISTORICO_NFE S
INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO
DELETE S
FROM CARTA_CORRECAO_NFE S
INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO
DELETE S
FROM NFE S
INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO
DELETE S
FROM VENDA S
INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO
DELETE S
FROM NF_COMPRA S
INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO
DELETE S
FROM MOVIMENTO_POS_VENDA S
INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO
DELETE S
FROM MOVIMENTO_ITEM S
INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO
DELETE S
FROM MOVIMENTO_FINANCEIRO S
INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO
DELETE S
FROM MOVIMENTO_CONTA_TRANSACAO S
INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO
DELETE S
FROM MOVIMENTO_CONCILIACAO S
INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO
DELETE S
FROM FECHAMENTO_MOVIMENTO S
INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO
DELETE S
FROM ENTREGA S
INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO
DELETE S
FROM MOVIMENTO S
INNER JOIN @MOVIVIMENTO T ON T.COD_MOVIMENTO = S.COD_MOVIMENTO
DELETE FROM AUDITORIA WHERE DATA < @DATA