142 lines
5.9 KiB
Transact-SQL
142 lines
5.9 KiB
Transact-SQL
-- V014_ROLLBACK.sql
|
|
-- Reversa de V014__create_tablas_fiscales.sql.
|
|
--
|
|
-- ADVERTENCIA: ejecutar ELIMINA TipoDeIva, IngresosBrutos, sus historiales temporales,
|
|
-- el permiso 'administracion:fiscal:gestionar' y sus asignaciones.
|
|
--
|
|
-- Uso intended: ROLLBACK en entornos NO-productivos.
|
|
-- Prerequisito: no deben existir FKs vivas apuntando a estas tablas (FAC-001, etc.).
|
|
-- Si FAC-001 ya esta aplicado, este rollback fallara — usar backup.
|
|
--
|
|
-- Idempotente: seguro para re-ejecutar (guards en cada paso).
|
|
|
|
SET QUOTED_IDENTIFIER ON;
|
|
SET ANSI_NULLS ON;
|
|
SET NOCOUNT ON;
|
|
GO
|
|
|
|
-- ═══════════════════════════════════════════════════════════════════════
|
|
-- 1. Apagar SYSTEM_VERSIONING — TipoDeIva
|
|
-- ═══════════════════════════════════════════════════════════════════════
|
|
|
|
IF EXISTS (SELECT 1 FROM sys.tables WHERE object_id = OBJECT_ID('dbo.TipoDeIva') AND temporal_type = 2)
|
|
BEGIN
|
|
ALTER TABLE dbo.TipoDeIva SET (SYSTEM_VERSIONING = OFF);
|
|
PRINT 'TipoDeIva: SYSTEM_VERSIONING OFF.';
|
|
END
|
|
GO
|
|
|
|
IF EXISTS (SELECT 1 FROM sys.periods WHERE object_id = OBJECT_ID('dbo.TipoDeIva'))
|
|
BEGIN
|
|
ALTER TABLE dbo.TipoDeIva DROP PERIOD FOR SYSTEM_TIME;
|
|
PRINT 'TipoDeIva: PERIOD FOR SYSTEM_TIME dropped.';
|
|
END
|
|
GO
|
|
|
|
IF COL_LENGTH('dbo.TipoDeIva', 'ValidFrom') IS NOT NULL
|
|
BEGIN
|
|
ALTER TABLE dbo.TipoDeIva DROP CONSTRAINT IF EXISTS DF_TipoDeIva_ValidFrom;
|
|
ALTER TABLE dbo.TipoDeIva DROP CONSTRAINT IF EXISTS DF_TipoDeIva_ValidTo;
|
|
ALTER TABLE dbo.TipoDeIva DROP COLUMN ValidFrom, ValidTo;
|
|
PRINT 'TipoDeIva: ValidFrom/ValidTo dropped.';
|
|
END
|
|
GO
|
|
|
|
-- ═══════════════════════════════════════════════════════════════════════
|
|
-- 2. Apagar SYSTEM_VERSIONING — IngresosBrutos
|
|
-- ═══════════════════════════════════════════════════════════════════════
|
|
|
|
IF EXISTS (SELECT 1 FROM sys.tables WHERE object_id = OBJECT_ID('dbo.IngresosBrutos') AND temporal_type = 2)
|
|
BEGIN
|
|
ALTER TABLE dbo.IngresosBrutos SET (SYSTEM_VERSIONING = OFF);
|
|
PRINT 'IngresosBrutos: SYSTEM_VERSIONING OFF.';
|
|
END
|
|
GO
|
|
|
|
IF EXISTS (SELECT 1 FROM sys.periods WHERE object_id = OBJECT_ID('dbo.IngresosBrutos'))
|
|
BEGIN
|
|
ALTER TABLE dbo.IngresosBrutos DROP PERIOD FOR SYSTEM_TIME;
|
|
PRINT 'IngresosBrutos: PERIOD FOR SYSTEM_TIME dropped.';
|
|
END
|
|
GO
|
|
|
|
IF COL_LENGTH('dbo.IngresosBrutos', 'ValidFrom') IS NOT NULL
|
|
BEGIN
|
|
ALTER TABLE dbo.IngresosBrutos DROP CONSTRAINT IF EXISTS DF_IIBB_ValidFrom;
|
|
ALTER TABLE dbo.IngresosBrutos DROP CONSTRAINT IF EXISTS DF_IIBB_ValidTo;
|
|
ALTER TABLE dbo.IngresosBrutos DROP COLUMN ValidFrom, ValidTo;
|
|
PRINT 'IngresosBrutos: ValidFrom/ValidTo dropped.';
|
|
END
|
|
GO
|
|
|
|
-- ═══════════════════════════════════════════════════════════════════════
|
|
-- 3. Drop FK self antes de DROP TABLE (para evitar constraint violation)
|
|
-- ═══════════════════════════════════════════════════════════════════════
|
|
|
|
IF OBJECT_ID('FK_TipoDeIva_Predecesor', 'F') IS NOT NULL
|
|
BEGIN
|
|
ALTER TABLE dbo.TipoDeIva DROP CONSTRAINT FK_TipoDeIva_Predecesor;
|
|
PRINT 'FK_TipoDeIva_Predecesor dropped.';
|
|
END
|
|
GO
|
|
|
|
IF OBJECT_ID('FK_IIBB_Predecesor', 'F') IS NOT NULL
|
|
BEGIN
|
|
ALTER TABLE dbo.IngresosBrutos DROP CONSTRAINT FK_IIBB_Predecesor;
|
|
PRINT 'FK_IIBB_Predecesor dropped.';
|
|
END
|
|
GO
|
|
|
|
-- ═══════════════════════════════════════════════════════════════════════
|
|
-- 4. Drop history tables → main tables
|
|
-- ═══════════════════════════════════════════════════════════════════════
|
|
|
|
IF OBJECT_ID(N'dbo.TipoDeIva_History', N'U') IS NOT NULL
|
|
BEGIN
|
|
DROP TABLE dbo.TipoDeIva_History;
|
|
PRINT 'TipoDeIva_History dropped.';
|
|
END
|
|
GO
|
|
|
|
IF OBJECT_ID(N'dbo.IngresosBrutos_History', N'U') IS NOT NULL
|
|
BEGIN
|
|
DROP TABLE dbo.IngresosBrutos_History;
|
|
PRINT 'IngresosBrutos_History dropped.';
|
|
END
|
|
GO
|
|
|
|
IF OBJECT_ID(N'dbo.TipoDeIva', N'U') IS NOT NULL
|
|
BEGIN
|
|
DROP TABLE dbo.TipoDeIva;
|
|
PRINT 'Table dbo.TipoDeIva dropped.';
|
|
END
|
|
GO
|
|
|
|
IF OBJECT_ID(N'dbo.IngresosBrutos', N'U') IS NOT NULL
|
|
BEGIN
|
|
DROP TABLE dbo.IngresosBrutos;
|
|
PRINT 'Table dbo.IngresosBrutos dropped.';
|
|
END
|
|
GO
|
|
|
|
-- ═══════════════════════════════════════════════════════════════════════
|
|
-- 5. Remover permiso 'administracion:fiscal:gestionar' + RolPermiso
|
|
-- ═══════════════════════════════════════════════════════════════════════
|
|
|
|
DELETE rp
|
|
FROM dbo.RolPermiso rp
|
|
JOIN dbo.Permiso p ON p.Id = rp.PermisoId
|
|
WHERE p.Codigo = 'administracion:fiscal:gestionar';
|
|
GO
|
|
|
|
DELETE FROM dbo.Permiso
|
|
WHERE Codigo = 'administracion:fiscal:gestionar';
|
|
GO
|
|
|
|
PRINT '';
|
|
PRINT 'V014 rolled back.';
|
|
PRINT ' - dbo.TipoDeIva and dbo.TipoDeIva_History removed.';
|
|
PRINT ' - dbo.IngresosBrutos and dbo.IngresosBrutos_History removed.';
|
|
PRINT ' - Permiso administracion:fiscal:gestionar removed.';
|
|
GO
|