SET NOCOUNT ON; SET XACT_ABORT ON; USE [master]; ALTER DATABASE [SIG_PlataformaDesarolladores] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; BEGIN TRY USE [SIG_PlataformaDesarolladores]; /* Retirar dependencias del COLLATE predeterminado. */ IF EXISTS(SELECT 1 FROM sys.indexes WHERE object_id=OBJECT_ID(N'dbo.Sis_UsuariosClientes') AND name=N'UX_Sis_UsuariosClientes_Usuario_Orden') DROP INDEX [UX_Sis_UsuariosClientes_Usuario_Orden] ON [dbo].[Sis_UsuariosClientes]; IF EXISTS(SELECT 1 FROM sys.indexes WHERE object_id=OBJECT_ID(N'dbo.Sis_Usuarios') AND name=N'UQ_Sis_Usuarios_CorreoElectronico') DROP INDEX [UQ_Sis_Usuarios_CorreoElectronico] ON [dbo].[Sis_Usuarios]; IF EXISTS(SELECT 1 FROM sys.indexes WHERE object_id=OBJECT_ID(N'dbo.Tra_Preguntas') AND name=N'UX_Tra_Preguntas_Codigo') DROP INDEX [UX_Tra_Preguntas_Codigo] ON [dbo].[Tra_Preguntas]; IF OBJECT_ID(N'dbo.CK_Tra_DocumentosSolicitud_Tamano', N'C') IS NOT NULL ALTER TABLE [dbo].[Tra_DocumentosSolicitud] DROP CONSTRAINT [CK_Tra_DocumentosSolicitud_Tamano]; IF OBJECT_ID(N'dbo.CK_Sis_NotificacionesEnvios_Canal', N'C') IS NOT NULL ALTER TABLE [dbo].[Sis_NotificacionesEnvios] DROP CONSTRAINT [CK_Sis_NotificacionesEnvios_Canal]; IF OBJECT_ID(N'dbo.CK_Sis_NotificacionesEnvios_Estado', N'C') IS NOT NULL ALTER TABLE [dbo].[Sis_NotificacionesEnvios] DROP CONSTRAINT [CK_Sis_NotificacionesEnvios_Estado]; IF OBJECT_ID(N'dbo.CK_Tra_RespuestasSolicitud_Valor', N'C') IS NOT NULL ALTER TABLE [dbo].[Tra_RespuestasSolicitud] DROP CONSTRAINT [CK_Tra_RespuestasSolicitud_Valor]; IF OBJECT_ID(N'dbo.CK_Sis_UsuariosClientes_Orden', N'C') IS NOT NULL ALTER TABLE [dbo].[Sis_UsuariosClientes] DROP CONSTRAINT [CK_Sis_UsuariosClientes_Orden]; IF OBJECT_ID(N'dbo.CK_Tra_CostosTramite_Importe', N'C') IS NOT NULL ALTER TABLE [dbo].[Tra_CostosTramite] DROP CONSTRAINT [CK_Tra_CostosTramite_Importe]; IF OBJECT_ID(N'dbo.CK_Tra_CostosTramite_Vigencia', N'C') IS NOT NULL ALTER TABLE [dbo].[Tra_CostosTramite] DROP CONSTRAINT [CK_Tra_CostosTramite_Vigencia]; IF OBJECT_ID(N'dbo.CK_Bit_Bitacora_Autorizacion', N'C') IS NOT NULL ALTER TABLE [dbo].[Bit_Bitacora] DROP CONSTRAINT [CK_Bit_Bitacora_Autorizacion]; IF OBJECT_ID(N'dbo.CK_VentasDetalle_FondoInicial', N'C') IS NOT NULL ALTER TABLE [dbo].[VentasDetalle] DROP CONSTRAINT [CK_VentasDetalle_FondoInicial]; IF OBJECT_ID(N'dbo.CK_VentasDetalle_Importes', N'C') IS NOT NULL ALTER TABLE [dbo].[VentasDetalle] DROP CONSTRAINT [CK_VentasDetalle_Importes]; IF OBJECT_ID(N'dbo.CK_Vta_Pagos_Importe', N'C') IS NOT NULL ALTER TABLE [dbo].[Vta_Pagos] DROP CONSTRAINT [CK_Vta_Pagos_Importe]; IF OBJECT_ID(N'dbo.CK_Vta_Pagos_SaldoFavor', N'C') IS NOT NULL ALTER TABLE [dbo].[Vta_Pagos] DROP CONSTRAINT [CK_Vta_Pagos_SaldoFavor]; IF OBJECT_ID(N'dbo.CK_Bit_BitacoraRelaciones_ValorRelacion', N'C') IS NOT NULL ALTER TABLE [dbo].[Bit_BitacoraRelaciones] DROP CONSTRAINT [CK_Bit_BitacoraRelaciones_ValorRelacion]; IF OBJECT_ID(N'dbo.CK_Vta_AplicacionesSaldoFavor_Importe', N'C') IS NOT NULL ALTER TABLE [dbo].[Vta_AplicacionesSaldoFavor] DROP CONSTRAINT [CK_Vta_AplicacionesSaldoFavor_Importe]; IF OBJECT_ID(N'dbo.CHK_VentasMail', N'C') IS NOT NULL ALTER TABLE [dbo].[Ventas] DROP CONSTRAINT [CHK_VentasMail]; IF OBJECT_ID(N'dbo.CK_Ventas', N'C') IS NOT NULL ALTER TABLE [dbo].[Ventas] DROP CONSTRAINT [CK_Ventas]; IF OBJECT_ID(N'dbo.CK_Ventas_1', N'C') IS NOT NULL ALTER TABLE [dbo].[Ventas] DROP CONSTRAINT [CK_Ventas_1]; IF OBJECT_ID(N'dbo.CK_Ventas_Dev_CveVentaPadre', N'C') IS NOT NULL ALTER TABLE [dbo].[Ventas] DROP CONSTRAINT [CK_Ventas_Dev_CveVentaPadre]; IF OBJECT_ID(N'dbo.CK_Ventas_FechaEjecucion_MinMax', N'C') IS NOT NULL ALTER TABLE [dbo].[Ventas] DROP CONSTRAINT [CK_Ventas_FechaEjecucion_MinMax]; IF OBJECT_ID(N'dbo.CK_Ventas_Moneda_TipoCambio', N'C') IS NOT NULL ALTER TABLE [dbo].[Ventas] DROP CONSTRAINT [CK_Ventas_Moneda_TipoCambio]; IF OBJECT_ID(N'dbo.CK_Ventas_TMp_AlmacenInactivo', N'C') IS NOT NULL ALTER TABLE [dbo].[Ventas] DROP CONSTRAINT [CK_Ventas_TMp_AlmacenInactivo]; IF OBJECT_ID(N'dbo.CK_Ventas_Total', N'C') IS NOT NULL ALTER TABLE [dbo].[Ventas] DROP CONSTRAINT [CK_Ventas_Total]; IF OBJECT_ID(N'dbo.CK_Conta_Cuentas_Padre', N'C') IS NOT NULL ALTER TABLE [dbo].[Conta_Cuentas] DROP CONSTRAINT [CK_Conta_Cuentas_Padre]; IF OBJECT_ID(N'dbo.CK_Conta_Cuentas_Padre_Requerido', N'C') IS NOT NULL ALTER TABLE [dbo].[Conta_Cuentas] DROP CONSTRAINT [CK_Conta_Cuentas_Padre_Requerido]; IF OBJECT_ID(N'dbo.CK_Fraccionamientos_Hectareas', N'C') IS NOT NULL ALTER TABLE [dbo].[Fraccionamientos] DROP CONSTRAINT [CK_Fraccionamientos_Hectareas]; IF OBJECT_ID(N'dbo.CK_Clientes_RFC_Requerido', N'C') IS NOT NULL ALTER TABLE [dbo].[Clientes] DROP CONSTRAINT [CK_Clientes_RFC_Requerido]; IF OBJECT_ID(N'dbo.CK_FraccionamientosEtapas_Hectareas', N'C') IS NOT NULL ALTER TABLE [dbo].[FraccionamientosEtapas] DROP CONSTRAINT [CK_FraccionamientosEtapas_Hectareas]; IF OBJECT_ID(N'dbo.CK_FraccionamientosLotes_MetrosCuadrados', N'C') IS NOT NULL ALTER TABLE [dbo].[FraccionamientosLotes] DROP CONSTRAINT [CK_FraccionamientosLotes_MetrosCuadrados]; IF OBJECT_ID(N'dbo.CK_Tra_TiposDocumento_Tamano', N'C') IS NOT NULL ALTER TABLE [dbo].[Tra_TiposDocumento] DROP CONSTRAINT [CK_Tra_TiposDocumento_Tamano]; IF OBJECT_ID(N'dbo.CK_Conta_PrePolizas_Concepto', N'C') IS NOT NULL ALTER TABLE [dbo].[Conta_PrePolizas] DROP CONSTRAINT [CK_Conta_PrePolizas_Concepto]; IF OBJECT_ID(N'dbo.CK_Conta_PrePolizas_Fecha_2000_2050', N'C') IS NOT NULL ALTER TABLE [dbo].[Conta_PrePolizas] DROP CONSTRAINT [CK_Conta_PrePolizas_Fecha_2000_2050]; IF OBJECT_ID(N'dbo.CK_Conta_PrePolizas_FolioPoliza', N'C') IS NOT NULL ALTER TABLE [dbo].[Conta_PrePolizas] DROP CONSTRAINT [CK_Conta_PrePolizas_FolioPoliza]; IF OBJECT_ID(N'dbo.CK_Sis_PoliticasLimpieza_DiasRetencion', N'C') IS NOT NULL ALTER TABLE [dbo].[Sis_PoliticasLimpieza] DROP CONSTRAINT [CK_Sis_PoliticasLimpieza_DiasRetencion]; IF OBJECT_ID(N'dbo.CK_Sis_PoliticasLimpieza_TamanoLote', N'C') IS NOT NULL ALTER TABLE [dbo].[Sis_PoliticasLimpieza] DROP CONSTRAINT [CK_Sis_PoliticasLimpieza_TamanoLote]; IF OBJECT_ID(N'dbo.CK_Sis_UsuariosAutorizaciones_Estado', N'C') IS NOT NULL ALTER TABLE [dbo].[Sis_UsuariosAutorizaciones] DROP CONSTRAINT [CK_Sis_UsuariosAutorizaciones_Estado]; IF OBJECT_ID(N'dbo.CK_Tra_SolicitudesDependencias_Diferentes', N'C') IS NOT NULL ALTER TABLE [dbo].[Tra_SolicitudesDependencias] DROP CONSTRAINT [CK_Tra_SolicitudesDependencias_Diferentes]; IF OBJECT_ID(N'dbo.CK_AsientoContableCompras', N'C') IS NOT NULL ALTER TABLE [dbo].[ProductosServicios] DROP CONSTRAINT [CK_AsientoContableCompras]; IF OBJECT_ID(N'dbo.CK_AsientoContableVentas', N'C') IS NOT NULL ALTER TABLE [dbo].[ProductosServicios] DROP CONSTRAINT [CK_AsientoContableVentas]; IF OBJECT_ID(N'dbo.CK_ProductosServicios_IVA', N'C') IS NOT NULL ALTER TABLE [dbo].[ProductosServicios] DROP CONSTRAINT [CK_ProductosServicios_IVA]; IF OBJECT_ID(N'dbo.CK_Sis_Notificaciones_Estado', N'C') IS NOT NULL ALTER TABLE [dbo].[Sis_Notificaciones] DROP CONSTRAINT [CK_Sis_Notificaciones_Estado]; IF OBJECT_ID(N'dbo.CK_Sis_Notificaciones_Tipo', N'C') IS NOT NULL ALTER TABLE [dbo].[Sis_Notificaciones] DROP CONSTRAINT [CK_Sis_Notificaciones_Tipo]; IF COL_LENGTH(N'dbo.Banc_CreditosDetalle', N'IVA') IS NOT NULL ALTER TABLE [dbo].[Banc_CreditosDetalle] DROP COLUMN [IVA]; IF COL_LENGTH(N'dbo.Banc_CreditosDetalle', N'Total') IS NOT NULL ALTER TABLE [dbo].[Banc_CreditosDetalle] DROP COLUMN [Total]; IF COL_LENGTH(N'dbo.Ventas', N'DiasVencimiento') IS NOT NULL ALTER TABLE [dbo].[Ventas] DROP COLUMN [DiasVencimiento]; IF COL_LENGTH(N'dbo.Ventas', N'SerieFolio') IS NOT NULL ALTER TABLE [dbo].[Ventas] DROP COLUMN [SerieFolio]; IF COL_LENGTH(N'dbo.Conta_PrePolizas', N'AnioMes') IS NOT NULL ALTER TABLE [dbo].[Conta_PrePolizas] DROP COLUMN [AnioMes]; IF COL_LENGTH(N'dbo.ProductosServicios', N'CodigoPS') IS NOT NULL ALTER TABLE [dbo].[ProductosServicios] DROP COLUMN [CodigoPS]; USE [master]; ALTER DATABASE [SIG_PlataformaDesarolladores] COLLATE Modern_Spanish_CS_AS; USE [SIG_PlataformaDesarolladores]; /* Reconstruir dependencias. */ IF OBJECT_ID(N'dbo.CK_Tra_DocumentosSolicitud_Tamano', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Tra_DocumentosSolicitud] WITH CHECK ADD CONSTRAINT [CK_Tra_DocumentosSolicitud_Tamano] CHECK ([TamanoBytes] IS NULL OR [TamanoBytes]>=(0)); ALTER TABLE [dbo].[Tra_DocumentosSolicitud] CHECK CONSTRAINT [CK_Tra_DocumentosSolicitud_Tamano]; END; IF OBJECT_ID(N'dbo.CK_Sis_NotificacionesEnvios_Canal', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Sis_NotificacionesEnvios] WITH CHECK ADD CONSTRAINT [CK_Sis_NotificacionesEnvios_Canal] CHECK ([CanalEnvio]='Campana' OR [CanalEnvio]='Push' OR [CanalEnvio]='Correo' OR [CanalEnvio]='SignalR' OR [CanalEnvio]='WhatsApp' OR [CanalEnvio]='Local'); ALTER TABLE [dbo].[Sis_NotificacionesEnvios] CHECK CONSTRAINT [CK_Sis_NotificacionesEnvios_Canal]; END; IF OBJECT_ID(N'dbo.CK_Sis_NotificacionesEnvios_Estado', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Sis_NotificacionesEnvios] WITH CHECK ADD CONSTRAINT [CK_Sis_NotificacionesEnvios_Estado] CHECK ([EstadoEnvio]='Cancelado' OR [EstadoEnvio]='Fallido' OR [EstadoEnvio]='Enviado' OR [EstadoEnvio]='Pendiente'); ALTER TABLE [dbo].[Sis_NotificacionesEnvios] CHECK CONSTRAINT [CK_Sis_NotificacionesEnvios_Estado]; END; IF OBJECT_ID(N'dbo.CK_Tra_RespuestasSolicitud_Valor', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Tra_RespuestasSolicitud] WITH CHECK ADD CONSTRAINT [CK_Tra_RespuestasSolicitud_Valor] CHECK ([CveOpcionPregunta] IS NOT NULL OR [Valor] IS NOT NULL); ALTER TABLE [dbo].[Tra_RespuestasSolicitud] CHECK CONSTRAINT [CK_Tra_RespuestasSolicitud_Valor]; END; IF OBJECT_ID(N'dbo.CK_Sis_UsuariosClientes_Orden', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Sis_UsuariosClientes] WITH CHECK ADD CONSTRAINT [CK_Sis_UsuariosClientes_Orden] CHECK ([Orden]>(0)); ALTER TABLE [dbo].[Sis_UsuariosClientes] CHECK CONSTRAINT [CK_Sis_UsuariosClientes_Orden]; END; IF OBJECT_ID(N'dbo.CK_Tra_CostosTramite_Importe', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Tra_CostosTramite] WITH CHECK ADD CONSTRAINT [CK_Tra_CostosTramite_Importe] CHECK ([Importe]>=(0)); ALTER TABLE [dbo].[Tra_CostosTramite] CHECK CONSTRAINT [CK_Tra_CostosTramite_Importe]; END; IF OBJECT_ID(N'dbo.CK_Tra_CostosTramite_Vigencia', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Tra_CostosTramite] WITH CHECK ADD CONSTRAINT [CK_Tra_CostosTramite_Vigencia] CHECK ([FechaFinVigencia] IS NULL OR [FechaInicioVigencia] IS NULL OR [FechaFinVigencia]>=[FechaInicioVigencia]); ALTER TABLE [dbo].[Tra_CostosTramite] CHECK CONSTRAINT [CK_Tra_CostosTramite_Vigencia]; END; IF OBJECT_ID(N'dbo.CK_Bit_Bitacora_Autorizacion', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Bit_Bitacora] WITH CHECK ADD CONSTRAINT [CK_Bit_Bitacora_Autorizacion] CHECK ([CveUsuarioAutoriza] IS NOT NULL OR [FechaAutorizacion] IS NULL); ALTER TABLE [dbo].[Bit_Bitacora] CHECK CONSTRAINT [CK_Bit_Bitacora_Autorizacion]; END; IF OBJECT_ID(N'dbo.CK_VentasDetalle_FondoInicial', N'C') IS NULL BEGIN ALTER TABLE [dbo].[VentasDetalle] WITH CHECK ADD CONSTRAINT [CK_VentasDetalle_FondoInicial] CHECK ([EsFondoInicial]=(0) OR [CveSolicitud] IS NULL AND [CveCostoTramite] IS NULL); ALTER TABLE [dbo].[VentasDetalle] CHECK CONSTRAINT [CK_VentasDetalle_FondoInicial]; END; IF OBJECT_ID(N'dbo.CK_VentasDetalle_Importes', N'C') IS NULL BEGIN ALTER TABLE [dbo].[VentasDetalle] WITH CHECK ADD CONSTRAINT [CK_VentasDetalle_Importes] CHECK ([Cantidad]>(0) AND [PrecioUnitario]>=(0) AND [Descuento]>=(0) AND [IVA]>=(0) AND [Importe]>=(0)); ALTER TABLE [dbo].[VentasDetalle] CHECK CONSTRAINT [CK_VentasDetalle_Importes]; END; IF OBJECT_ID(N'dbo.CK_Vta_Pagos_Importe', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Vta_Pagos] WITH CHECK ADD CONSTRAINT [CK_Vta_Pagos_Importe] CHECK ([Importe]>(0)); ALTER TABLE [dbo].[Vta_Pagos] CHECK CONSTRAINT [CK_Vta_Pagos_Importe]; END; IF OBJECT_ID(N'dbo.CK_Vta_Pagos_SaldoFavor', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Vta_Pagos] WITH CHECK ADD CONSTRAINT [CK_Vta_Pagos_SaldoFavor] CHECK ([EsSaldoFavor]=(0) OR [CveSolicitud] IS NULL); ALTER TABLE [dbo].[Vta_Pagos] CHECK CONSTRAINT [CK_Vta_Pagos_SaldoFavor]; END; IF OBJECT_ID(N'dbo.CK_Bit_BitacoraRelaciones_ValorRelacion', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Bit_BitacoraRelaciones] WITH CHECK ADD CONSTRAINT [CK_Bit_BitacoraRelaciones_ValorRelacion] CHECK (NOT ([ValorRelacionNumero] IS NOT NULL AND [ValorRelacionTexto] IS NOT NULL)); ALTER TABLE [dbo].[Bit_BitacoraRelaciones] CHECK CONSTRAINT [CK_Bit_BitacoraRelaciones_ValorRelacion]; END; IF OBJECT_ID(N'dbo.CK_Vta_AplicacionesSaldoFavor_Importe', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Vta_AplicacionesSaldoFavor] WITH CHECK ADD CONSTRAINT [CK_Vta_AplicacionesSaldoFavor_Importe] CHECK ([Importe]>(0)); ALTER TABLE [dbo].[Vta_AplicacionesSaldoFavor] CHECK CONSTRAINT [CK_Vta_AplicacionesSaldoFavor_Importe]; END; IF OBJECT_ID(N'dbo.CHK_VentasMail', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Ventas] WITH CHECK ADD CONSTRAINT [CHK_VentasMail] CHECK ([EnvioMail]=(3) OR [EnvioMail]=(2) OR [EnvioMail]=(1) OR [EnvioMail]=(0)); ALTER TABLE [dbo].[Ventas] CHECK CONSTRAINT [CHK_VentasMail]; END; IF OBJECT_ID(N'dbo.CK_Ventas', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Ventas] WITH CHECK ADD CONSTRAINT [CK_Ventas] CHECK ([TipoDocto]='Egs' OR [TipoDocto]='Dev' OR [TipoDocto]='Ing' OR [TipoDocto]='Cot' OR [TipoDocto]='Rem' OR [TipoDocto]='Ped' OR [TipoDocto]='DPe' OR [TipoDocto]='Com' OR [TipoDocto]='OP' OR [TipoDocto]='Nom' OR [TipoDocto]='Ant' OR [TipoDocto]='PeC' OR [TipoDocto]='Pd2' OR [TipoDocto]='PA' OR [TipoDocto]='RNC' OR [TipoDocto]='Rmm'); ALTER TABLE [dbo].[Ventas] CHECK CONSTRAINT [CK_Ventas]; END; IF OBJECT_ID(N'dbo.CK_Ventas_1', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Ventas] WITH CHECK ADD CONSTRAINT [CK_Ventas_1] CHECK ([CveCliente]>(0)); ALTER TABLE [dbo].[Ventas] CHECK CONSTRAINT [CK_Ventas_1]; END; IF OBJECT_ID(N'dbo.CK_Ventas_Dev_CveVentaPadre', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Ventas] WITH CHECK ADD CONSTRAINT [CK_Ventas_Dev_CveVentaPadre] CHECK ([TipoDocto]='Dev' AND [CveVentaPadre]>(0) OR [TipoDocto]<>'Dev'); ALTER TABLE [dbo].[Ventas] CHECK CONSTRAINT [CK_Ventas_Dev_CveVentaPadre]; END; IF OBJECT_ID(N'dbo.CK_Ventas_FechaEjecucion_MinMax', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Ventas] WITH CHECK ADD CONSTRAINT [CK_Ventas_FechaEjecucion_MinMax] CHECK ([FechaEjecucion]>'1900-01-01' AND [FechaEjecucion]<'2900-12-31'); ALTER TABLE [dbo].[Ventas] CHECK CONSTRAINT [CK_Ventas_FechaEjecucion_MinMax]; END; IF OBJECT_ID(N'dbo.CK_Ventas_Moneda_TipoCambio', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Ventas] WITH CHECK ADD CONSTRAINT [CK_Ventas_Moneda_TipoCambio] CHECK ([CveMoneda]>=(2) AND [TipoCambio]>=(10) OR [CveMoneda]=(1) AND [TipoCambio]=(1)); ALTER TABLE [dbo].[Ventas] CHECK CONSTRAINT [CK_Ventas_Moneda_TipoCambio]; END; IF OBJECT_ID(N'dbo.CK_Ventas_TMp_AlmacenInactivo', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Ventas] WITH CHECK ADD CONSTRAINT [CK_Ventas_TMp_AlmacenInactivo] CHECK ([CveAlmacenTraspasoDestino]<>(172) AND [CveVenta]>(1012251) OR [CveVenta]<=(1012251)); ALTER TABLE [dbo].[Ventas] CHECK CONSTRAINT [CK_Ventas_TMp_AlmacenInactivo]; END; IF OBJECT_ID(N'dbo.CK_Ventas_Total', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Ventas] WITH CHECK ADD CONSTRAINT [CK_Ventas_Total] CHECK (datepart(year,[Fecha])>=(2018) AND abs(round([Total],(2))-round(((((((isnull([SubTotal],(0))+isnull([IVA],(0)))+isnull([IEPS],(0)))-isnull([Amortizacion],(0)))-isnull([RetIVA],(0)))-isnull([RetISR],(0)))-isnull([Descuento],(0)))-isnull([ImpuestoLocal],(0)),(2)))<(200.02) OR datepart(year,[Fecha])<(2018)); ALTER TABLE [dbo].[Ventas] CHECK CONSTRAINT [CK_Ventas_Total]; END; IF OBJECT_ID(N'dbo.CK_Conta_Cuentas_Padre', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Conta_Cuentas] WITH CHECK ADD CONSTRAINT [CK_Conta_Cuentas_Padre] CHECK ([CveCuentaPadre]<>[CveCuenta]); ALTER TABLE [dbo].[Conta_Cuentas] CHECK CONSTRAINT [CK_Conta_Cuentas_Padre]; END; IF OBJECT_ID(N'dbo.CK_Conta_Cuentas_Padre_Requerido', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Conta_Cuentas] WITH CHECK ADD CONSTRAINT [CK_Conta_Cuentas_Padre_Requerido] CHECK ([CveCuentaPadre] IS NOT NULL OR ([Codigo]='_ORDEN' OR [Codigo]='_ESTADISTICAS' OR [Codigo]='_GLOBAL')); ALTER TABLE [dbo].[Conta_Cuentas] CHECK CONSTRAINT [CK_Conta_Cuentas_Padre_Requerido]; END; IF OBJECT_ID(N'dbo.CK_Fraccionamientos_Hectareas', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Fraccionamientos] WITH CHECK ADD CONSTRAINT [CK_Fraccionamientos_Hectareas] CHECK ([Hectareas] IS NULL OR [Hectareas]>=(0)); ALTER TABLE [dbo].[Fraccionamientos] CHECK CONSTRAINT [CK_Fraccionamientos_Hectareas]; END; IF OBJECT_ID(N'dbo.CK_Clientes_RFC_Requerido', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Clientes] WITH CHECK ADD CONSTRAINT [CK_Clientes_RFC_Requerido] CHECK ([RFC]<>''); ALTER TABLE [dbo].[Clientes] CHECK CONSTRAINT [CK_Clientes_RFC_Requerido]; END; IF OBJECT_ID(N'dbo.CK_FraccionamientosEtapas_Hectareas', N'C') IS NULL BEGIN ALTER TABLE [dbo].[FraccionamientosEtapas] WITH CHECK ADD CONSTRAINT [CK_FraccionamientosEtapas_Hectareas] CHECK ([Hectareas] IS NULL OR [Hectareas]>=(0)); ALTER TABLE [dbo].[FraccionamientosEtapas] CHECK CONSTRAINT [CK_FraccionamientosEtapas_Hectareas]; END; IF OBJECT_ID(N'dbo.CK_FraccionamientosLotes_MetrosCuadrados', N'C') IS NULL BEGIN ALTER TABLE [dbo].[FraccionamientosLotes] WITH CHECK ADD CONSTRAINT [CK_FraccionamientosLotes_MetrosCuadrados] CHECK ([MetrosCuadrados] IS NULL OR [MetrosCuadrados]>=(0)); ALTER TABLE [dbo].[FraccionamientosLotes] CHECK CONSTRAINT [CK_FraccionamientosLotes_MetrosCuadrados]; END; IF OBJECT_ID(N'dbo.CK_Tra_TiposDocumento_Tamano', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Tra_TiposDocumento] WITH CHECK ADD CONSTRAINT [CK_Tra_TiposDocumento_Tamano] CHECK ([TamanoMaximoMb] IS NULL OR [TamanoMaximoMb]>(0)); ALTER TABLE [dbo].[Tra_TiposDocumento] CHECK CONSTRAINT [CK_Tra_TiposDocumento_Tamano]; END; IF OBJECT_ID(N'dbo.CK_Conta_PrePolizas_Concepto', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Conta_PrePolizas] WITH CHECK ADD CONSTRAINT [CK_Conta_PrePolizas_Concepto] CHECK (rtrim([Concepto])<>''); ALTER TABLE [dbo].[Conta_PrePolizas] CHECK CONSTRAINT [CK_Conta_PrePolizas_Concepto]; END; IF OBJECT_ID(N'dbo.CK_Conta_PrePolizas_Fecha_2000_2050', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Conta_PrePolizas] WITH CHECK ADD CONSTRAINT [CK_Conta_PrePolizas_Fecha_2000_2050] CHECK ([Fecha]>='2000-01-01' AND [Fecha]<='2050/12/31'); ALTER TABLE [dbo].[Conta_PrePolizas] CHECK CONSTRAINT [CK_Conta_PrePolizas_Fecha_2000_2050]; END; IF OBJECT_ID(N'dbo.CK_Conta_PrePolizas_FolioPoliza', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Conta_PrePolizas] WITH CHECK ADD CONSTRAINT [CK_Conta_PrePolizas_FolioPoliza] CHECK ([IdPoliza]>(0) AND isnull([FolioPoliza],(0))>(0) OR ([IdPoliza] IS NULL OR [IdPoliza]=(0))); ALTER TABLE [dbo].[Conta_PrePolizas] CHECK CONSTRAINT [CK_Conta_PrePolizas_FolioPoliza]; END; IF OBJECT_ID(N'dbo.CK_Sis_PoliticasLimpieza_DiasRetencion', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Sis_PoliticasLimpieza] WITH CHECK ADD CONSTRAINT [CK_Sis_PoliticasLimpieza_DiasRetencion] CHECK ([DiasRetencion]>=(30) AND [DiasRetencion]<=(3650)); ALTER TABLE [dbo].[Sis_PoliticasLimpieza] CHECK CONSTRAINT [CK_Sis_PoliticasLimpieza_DiasRetencion]; END; IF OBJECT_ID(N'dbo.CK_Sis_PoliticasLimpieza_TamanoLote', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Sis_PoliticasLimpieza] WITH CHECK ADD CONSTRAINT [CK_Sis_PoliticasLimpieza_TamanoLote] CHECK ([TamanoLote]>=(1) AND [TamanoLote]<=(10000)); ALTER TABLE [dbo].[Sis_PoliticasLimpieza] CHECK CONSTRAINT [CK_Sis_PoliticasLimpieza_TamanoLote]; END; IF OBJECT_ID(N'dbo.CK_Sis_UsuariosAutorizaciones_Estado', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Sis_UsuariosAutorizaciones] WITH CHECK ADD CONSTRAINT [CK_Sis_UsuariosAutorizaciones_Estado] CHECK ([EstadoAutorizacion]='Cancelada' OR [EstadoAutorizacion]='Rechazada' OR [EstadoAutorizacion]='Aprobada' OR [EstadoAutorizacion]='Pendiente'); ALTER TABLE [dbo].[Sis_UsuariosAutorizaciones] CHECK CONSTRAINT [CK_Sis_UsuariosAutorizaciones_Estado]; END; IF OBJECT_ID(N'dbo.CK_Tra_SolicitudesDependencias_Diferentes', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Tra_SolicitudesDependencias] WITH CHECK ADD CONSTRAINT [CK_Tra_SolicitudesDependencias_Diferentes] CHECK ([CveSolicitud]<>[CveSolicitudRequerida]); ALTER TABLE [dbo].[Tra_SolicitudesDependencias] CHECK CONSTRAINT [CK_Tra_SolicitudesDependencias_Diferentes]; END; IF OBJECT_ID(N'dbo.CK_AsientoContableCompras', N'C') IS NULL BEGIN ALTER TABLE [dbo].[ProductosServicios] WITH CHECK ADD CONSTRAINT [CK_AsientoContableCompras] CHECK ([AsientoContableCompras]=(3) OR [AsientoContableCompras]=(2) OR [AsientoContableCompras]=(1)); ALTER TABLE [dbo].[ProductosServicios] CHECK CONSTRAINT [CK_AsientoContableCompras]; END; IF OBJECT_ID(N'dbo.CK_AsientoContableVentas', N'C') IS NULL BEGIN ALTER TABLE [dbo].[ProductosServicios] WITH CHECK ADD CONSTRAINT [CK_AsientoContableVentas] CHECK ([AsientoContableVentas]=(2) OR [AsientoContableVentas]=(1)); ALTER TABLE [dbo].[ProductosServicios] CHECK CONSTRAINT [CK_AsientoContableVentas]; END; IF OBJECT_ID(N'dbo.CK_ProductosServicios_IVA', N'C') IS NULL BEGIN ALTER TABLE [dbo].[ProductosServicios] WITH CHECK ADD CONSTRAINT [CK_ProductosServicios_IVA] CHECK ([IVA]=(-1) OR [IVA]=(0) OR [IVA] IS NULL); ALTER TABLE [dbo].[ProductosServicios] CHECK CONSTRAINT [CK_ProductosServicios_IVA]; END; IF OBJECT_ID(N'dbo.CK_Sis_Notificaciones_Estado', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Sis_Notificaciones] WITH CHECK ADD CONSTRAINT [CK_Sis_Notificaciones_Estado] CHECK ([EstadoNotificacion]='Cancelada' OR [EstadoNotificacion]='Fallida' OR [EstadoNotificacion]='Enviada' OR [EstadoNotificacion]='Pendiente'); ALTER TABLE [dbo].[Sis_Notificaciones] CHECK CONSTRAINT [CK_Sis_Notificaciones_Estado]; END; IF OBJECT_ID(N'dbo.CK_Sis_Notificaciones_Tipo', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Sis_Notificaciones] WITH CHECK ADD CONSTRAINT [CK_Sis_Notificaciones_Tipo] CHECK ([TipoNotificacion]='Campana' OR [TipoNotificacion]='Push' OR [TipoNotificacion]='Correo' OR [TipoNotificacion]='SignalR' OR [TipoNotificacion]='WhatsApp' OR [TipoNotificacion]='Local'); ALTER TABLE [dbo].[Sis_Notificaciones] CHECK CONSTRAINT [CK_Sis_Notificaciones_Tipo]; END; IF COL_LENGTH(N'dbo.Banc_CreditosDetalle', N'IVA') IS NULL ALTER TABLE [dbo].[Banc_CreditosDetalle] ADD [IVA] AS (([IVACapital]+[IVAIntereses])+[IVASeguro]); IF COL_LENGTH(N'dbo.Banc_CreditosDetalle', N'Total') IS NULL ALTER TABLE [dbo].[Banc_CreditosDetalle] ADD [Total] AS ((((([Capital]+[Intereses])+[Seguro])+[IVACapital])+[IVAIntereses])+[IVASeguro]); IF COL_LENGTH(N'dbo.Ventas', N'DiasVencimiento') IS NULL ALTER TABLE [dbo].[Ventas] ADD [DiasVencimiento] AS (datediff(day,[FechaVencimiento2],getdate())); IF COL_LENGTH(N'dbo.Ventas', N'SerieFolio') IS NULL ALTER TABLE [dbo].[Ventas] ADD [SerieFolio] AS ((concat(case when [Serie]<>'' then [Serie]+'-' else '' end,[Folio])) collate Modern_Spanish_CS_AS); IF COL_LENGTH(N'dbo.Conta_PrePolizas', N'AnioMes') IS NULL ALTER TABLE [dbo].[Conta_PrePolizas] ADD [AnioMes] AS ((CONVERT([varchar](6),[Fecha],(112))) collate Modern_Spanish_CS_AS) PERSISTED; IF COL_LENGTH(N'dbo.ProductosServicios', N'CodigoPS') IS NULL ALTER TABLE [dbo].[ProductosServicios] ADD [CodigoPS] AS ((case when len([Codigo])>(0) then concat(([Codigo]) collate Modern_Spanish_CI_AS,' - ',([PS]) collate Modern_Spanish_CI_AS) else ([PS]) collate Modern_Spanish_CI_AS end) collate Modern_Spanish_CI_AS); IF NOT EXISTS(SELECT 1 FROM sys.indexes WHERE object_id=OBJECT_ID(N'dbo.Sis_UsuariosClientes') AND name=N'UX_Sis_UsuariosClientes_Usuario_Orden') CREATE UNIQUE NONCLUSTERED INDEX [UX_Sis_UsuariosClientes_Usuario_Orden] ON [dbo].[Sis_UsuariosClientes] ([CveUsuario] ASC,[Orden] ASC) WHERE ([Activo]=(1)) WITH (PAD_INDEX=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON) ON [PRIMARY]; IF NOT EXISTS(SELECT 1 FROM sys.indexes WHERE object_id=OBJECT_ID(N'dbo.Sis_Usuarios') AND name=N'UQ_Sis_Usuarios_CorreoElectronico') CREATE UNIQUE NONCLUSTERED INDEX [UQ_Sis_Usuarios_CorreoElectronico] ON [dbo].[Sis_Usuarios] ([CorreoElectronico] ASC) WHERE ([CorreoElectronico] IS NOT NULL) WITH (PAD_INDEX=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON) ON [PRIMARY]; IF NOT EXISTS(SELECT 1 FROM sys.indexes WHERE object_id=OBJECT_ID(N'dbo.Tra_Preguntas') AND name=N'UX_Tra_Preguntas_Codigo') CREATE UNIQUE NONCLUSTERED INDEX [UX_Tra_Preguntas_Codigo] ON [dbo].[Tra_Preguntas] ([Codigo] ASC) WHERE ([Codigo] IS NOT NULL) WITH (PAD_INDEX=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON) ON [PRIMARY]; USE [master]; ALTER DATABASE [SIG_PlataformaDesarolladores] SET MULTI_USER; END TRY BEGIN CATCH DECLARE @Mensaje nvarchar(2048) = ERROR_MESSAGE(); BEGIN TRY USE [SIG_PlataformaDesarolladores]; /* Reconstruir dependencias. */ IF OBJECT_ID(N'dbo.CK_Tra_DocumentosSolicitud_Tamano', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Tra_DocumentosSolicitud] WITH CHECK ADD CONSTRAINT [CK_Tra_DocumentosSolicitud_Tamano] CHECK ([TamanoBytes] IS NULL OR [TamanoBytes]>=(0)); ALTER TABLE [dbo].[Tra_DocumentosSolicitud] CHECK CONSTRAINT [CK_Tra_DocumentosSolicitud_Tamano]; END; IF OBJECT_ID(N'dbo.CK_Sis_NotificacionesEnvios_Canal', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Sis_NotificacionesEnvios] WITH CHECK ADD CONSTRAINT [CK_Sis_NotificacionesEnvios_Canal] CHECK ([CanalEnvio]='Campana' OR [CanalEnvio]='Push' OR [CanalEnvio]='Correo' OR [CanalEnvio]='SignalR' OR [CanalEnvio]='WhatsApp' OR [CanalEnvio]='Local'); ALTER TABLE [dbo].[Sis_NotificacionesEnvios] CHECK CONSTRAINT [CK_Sis_NotificacionesEnvios_Canal]; END; IF OBJECT_ID(N'dbo.CK_Sis_NotificacionesEnvios_Estado', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Sis_NotificacionesEnvios] WITH CHECK ADD CONSTRAINT [CK_Sis_NotificacionesEnvios_Estado] CHECK ([EstadoEnvio]='Cancelado' OR [EstadoEnvio]='Fallido' OR [EstadoEnvio]='Enviado' OR [EstadoEnvio]='Pendiente'); ALTER TABLE [dbo].[Sis_NotificacionesEnvios] CHECK CONSTRAINT [CK_Sis_NotificacionesEnvios_Estado]; END; IF OBJECT_ID(N'dbo.CK_Tra_RespuestasSolicitud_Valor', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Tra_RespuestasSolicitud] WITH CHECK ADD CONSTRAINT [CK_Tra_RespuestasSolicitud_Valor] CHECK ([CveOpcionPregunta] IS NOT NULL OR [Valor] IS NOT NULL); ALTER TABLE [dbo].[Tra_RespuestasSolicitud] CHECK CONSTRAINT [CK_Tra_RespuestasSolicitud_Valor]; END; IF OBJECT_ID(N'dbo.CK_Sis_UsuariosClientes_Orden', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Sis_UsuariosClientes] WITH CHECK ADD CONSTRAINT [CK_Sis_UsuariosClientes_Orden] CHECK ([Orden]>(0)); ALTER TABLE [dbo].[Sis_UsuariosClientes] CHECK CONSTRAINT [CK_Sis_UsuariosClientes_Orden]; END; IF OBJECT_ID(N'dbo.CK_Tra_CostosTramite_Importe', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Tra_CostosTramite] WITH CHECK ADD CONSTRAINT [CK_Tra_CostosTramite_Importe] CHECK ([Importe]>=(0)); ALTER TABLE [dbo].[Tra_CostosTramite] CHECK CONSTRAINT [CK_Tra_CostosTramite_Importe]; END; IF OBJECT_ID(N'dbo.CK_Tra_CostosTramite_Vigencia', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Tra_CostosTramite] WITH CHECK ADD CONSTRAINT [CK_Tra_CostosTramite_Vigencia] CHECK ([FechaFinVigencia] IS NULL OR [FechaInicioVigencia] IS NULL OR [FechaFinVigencia]>=[FechaInicioVigencia]); ALTER TABLE [dbo].[Tra_CostosTramite] CHECK CONSTRAINT [CK_Tra_CostosTramite_Vigencia]; END; IF OBJECT_ID(N'dbo.CK_Bit_Bitacora_Autorizacion', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Bit_Bitacora] WITH CHECK ADD CONSTRAINT [CK_Bit_Bitacora_Autorizacion] CHECK ([CveUsuarioAutoriza] IS NOT NULL OR [FechaAutorizacion] IS NULL); ALTER TABLE [dbo].[Bit_Bitacora] CHECK CONSTRAINT [CK_Bit_Bitacora_Autorizacion]; END; IF OBJECT_ID(N'dbo.CK_VentasDetalle_FondoInicial', N'C') IS NULL BEGIN ALTER TABLE [dbo].[VentasDetalle] WITH CHECK ADD CONSTRAINT [CK_VentasDetalle_FondoInicial] CHECK ([EsFondoInicial]=(0) OR [CveSolicitud] IS NULL AND [CveCostoTramite] IS NULL); ALTER TABLE [dbo].[VentasDetalle] CHECK CONSTRAINT [CK_VentasDetalle_FondoInicial]; END; IF OBJECT_ID(N'dbo.CK_VentasDetalle_Importes', N'C') IS NULL BEGIN ALTER TABLE [dbo].[VentasDetalle] WITH CHECK ADD CONSTRAINT [CK_VentasDetalle_Importes] CHECK ([Cantidad]>(0) AND [PrecioUnitario]>=(0) AND [Descuento]>=(0) AND [IVA]>=(0) AND [Importe]>=(0)); ALTER TABLE [dbo].[VentasDetalle] CHECK CONSTRAINT [CK_VentasDetalle_Importes]; END; IF OBJECT_ID(N'dbo.CK_Vta_Pagos_Importe', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Vta_Pagos] WITH CHECK ADD CONSTRAINT [CK_Vta_Pagos_Importe] CHECK ([Importe]>(0)); ALTER TABLE [dbo].[Vta_Pagos] CHECK CONSTRAINT [CK_Vta_Pagos_Importe]; END; IF OBJECT_ID(N'dbo.CK_Vta_Pagos_SaldoFavor', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Vta_Pagos] WITH CHECK ADD CONSTRAINT [CK_Vta_Pagos_SaldoFavor] CHECK ([EsSaldoFavor]=(0) OR [CveSolicitud] IS NULL); ALTER TABLE [dbo].[Vta_Pagos] CHECK CONSTRAINT [CK_Vta_Pagos_SaldoFavor]; END; IF OBJECT_ID(N'dbo.CK_Bit_BitacoraRelaciones_ValorRelacion', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Bit_BitacoraRelaciones] WITH CHECK ADD CONSTRAINT [CK_Bit_BitacoraRelaciones_ValorRelacion] CHECK (NOT ([ValorRelacionNumero] IS NOT NULL AND [ValorRelacionTexto] IS NOT NULL)); ALTER TABLE [dbo].[Bit_BitacoraRelaciones] CHECK CONSTRAINT [CK_Bit_BitacoraRelaciones_ValorRelacion]; END; IF OBJECT_ID(N'dbo.CK_Vta_AplicacionesSaldoFavor_Importe', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Vta_AplicacionesSaldoFavor] WITH CHECK ADD CONSTRAINT [CK_Vta_AplicacionesSaldoFavor_Importe] CHECK ([Importe]>(0)); ALTER TABLE [dbo].[Vta_AplicacionesSaldoFavor] CHECK CONSTRAINT [CK_Vta_AplicacionesSaldoFavor_Importe]; END; IF OBJECT_ID(N'dbo.CHK_VentasMail', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Ventas] WITH CHECK ADD CONSTRAINT [CHK_VentasMail] CHECK ([EnvioMail]=(3) OR [EnvioMail]=(2) OR [EnvioMail]=(1) OR [EnvioMail]=(0)); ALTER TABLE [dbo].[Ventas] CHECK CONSTRAINT [CHK_VentasMail]; END; IF OBJECT_ID(N'dbo.CK_Ventas', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Ventas] WITH CHECK ADD CONSTRAINT [CK_Ventas] CHECK ([TipoDocto]='Egs' OR [TipoDocto]='Dev' OR [TipoDocto]='Ing' OR [TipoDocto]='Cot' OR [TipoDocto]='Rem' OR [TipoDocto]='Ped' OR [TipoDocto]='DPe' OR [TipoDocto]='Com' OR [TipoDocto]='OP' OR [TipoDocto]='Nom' OR [TipoDocto]='Ant' OR [TipoDocto]='PeC' OR [TipoDocto]='Pd2' OR [TipoDocto]='PA' OR [TipoDocto]='RNC' OR [TipoDocto]='Rmm'); ALTER TABLE [dbo].[Ventas] CHECK CONSTRAINT [CK_Ventas]; END; IF OBJECT_ID(N'dbo.CK_Ventas_1', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Ventas] WITH CHECK ADD CONSTRAINT [CK_Ventas_1] CHECK ([CveCliente]>(0)); ALTER TABLE [dbo].[Ventas] CHECK CONSTRAINT [CK_Ventas_1]; END; IF OBJECT_ID(N'dbo.CK_Ventas_Dev_CveVentaPadre', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Ventas] WITH CHECK ADD CONSTRAINT [CK_Ventas_Dev_CveVentaPadre] CHECK ([TipoDocto]='Dev' AND [CveVentaPadre]>(0) OR [TipoDocto]<>'Dev'); ALTER TABLE [dbo].[Ventas] CHECK CONSTRAINT [CK_Ventas_Dev_CveVentaPadre]; END; IF OBJECT_ID(N'dbo.CK_Ventas_FechaEjecucion_MinMax', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Ventas] WITH CHECK ADD CONSTRAINT [CK_Ventas_FechaEjecucion_MinMax] CHECK ([FechaEjecucion]>'1900-01-01' AND [FechaEjecucion]<'2900-12-31'); ALTER TABLE [dbo].[Ventas] CHECK CONSTRAINT [CK_Ventas_FechaEjecucion_MinMax]; END; IF OBJECT_ID(N'dbo.CK_Ventas_Moneda_TipoCambio', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Ventas] WITH CHECK ADD CONSTRAINT [CK_Ventas_Moneda_TipoCambio] CHECK ([CveMoneda]>=(2) AND [TipoCambio]>=(10) OR [CveMoneda]=(1) AND [TipoCambio]=(1)); ALTER TABLE [dbo].[Ventas] CHECK CONSTRAINT [CK_Ventas_Moneda_TipoCambio]; END; IF OBJECT_ID(N'dbo.CK_Ventas_TMp_AlmacenInactivo', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Ventas] WITH CHECK ADD CONSTRAINT [CK_Ventas_TMp_AlmacenInactivo] CHECK ([CveAlmacenTraspasoDestino]<>(172) AND [CveVenta]>(1012251) OR [CveVenta]<=(1012251)); ALTER TABLE [dbo].[Ventas] CHECK CONSTRAINT [CK_Ventas_TMp_AlmacenInactivo]; END; IF OBJECT_ID(N'dbo.CK_Ventas_Total', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Ventas] WITH CHECK ADD CONSTRAINT [CK_Ventas_Total] CHECK (datepart(year,[Fecha])>=(2018) AND abs(round([Total],(2))-round(((((((isnull([SubTotal],(0))+isnull([IVA],(0)))+isnull([IEPS],(0)))-isnull([Amortizacion],(0)))-isnull([RetIVA],(0)))-isnull([RetISR],(0)))-isnull([Descuento],(0)))-isnull([ImpuestoLocal],(0)),(2)))<(200.02) OR datepart(year,[Fecha])<(2018)); ALTER TABLE [dbo].[Ventas] CHECK CONSTRAINT [CK_Ventas_Total]; END; IF OBJECT_ID(N'dbo.CK_Conta_Cuentas_Padre', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Conta_Cuentas] WITH CHECK ADD CONSTRAINT [CK_Conta_Cuentas_Padre] CHECK ([CveCuentaPadre]<>[CveCuenta]); ALTER TABLE [dbo].[Conta_Cuentas] CHECK CONSTRAINT [CK_Conta_Cuentas_Padre]; END; IF OBJECT_ID(N'dbo.CK_Conta_Cuentas_Padre_Requerido', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Conta_Cuentas] WITH CHECK ADD CONSTRAINT [CK_Conta_Cuentas_Padre_Requerido] CHECK ([CveCuentaPadre] IS NOT NULL OR ([Codigo]='_ORDEN' OR [Codigo]='_ESTADISTICAS' OR [Codigo]='_GLOBAL')); ALTER TABLE [dbo].[Conta_Cuentas] CHECK CONSTRAINT [CK_Conta_Cuentas_Padre_Requerido]; END; IF OBJECT_ID(N'dbo.CK_Fraccionamientos_Hectareas', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Fraccionamientos] WITH CHECK ADD CONSTRAINT [CK_Fraccionamientos_Hectareas] CHECK ([Hectareas] IS NULL OR [Hectareas]>=(0)); ALTER TABLE [dbo].[Fraccionamientos] CHECK CONSTRAINT [CK_Fraccionamientos_Hectareas]; END; IF OBJECT_ID(N'dbo.CK_Clientes_RFC_Requerido', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Clientes] WITH CHECK ADD CONSTRAINT [CK_Clientes_RFC_Requerido] CHECK ([RFC]<>''); ALTER TABLE [dbo].[Clientes] CHECK CONSTRAINT [CK_Clientes_RFC_Requerido]; END; IF OBJECT_ID(N'dbo.CK_FraccionamientosEtapas_Hectareas', N'C') IS NULL BEGIN ALTER TABLE [dbo].[FraccionamientosEtapas] WITH CHECK ADD CONSTRAINT [CK_FraccionamientosEtapas_Hectareas] CHECK ([Hectareas] IS NULL OR [Hectareas]>=(0)); ALTER TABLE [dbo].[FraccionamientosEtapas] CHECK CONSTRAINT [CK_FraccionamientosEtapas_Hectareas]; END; IF OBJECT_ID(N'dbo.CK_FraccionamientosLotes_MetrosCuadrados', N'C') IS NULL BEGIN ALTER TABLE [dbo].[FraccionamientosLotes] WITH CHECK ADD CONSTRAINT [CK_FraccionamientosLotes_MetrosCuadrados] CHECK ([MetrosCuadrados] IS NULL OR [MetrosCuadrados]>=(0)); ALTER TABLE [dbo].[FraccionamientosLotes] CHECK CONSTRAINT [CK_FraccionamientosLotes_MetrosCuadrados]; END; IF OBJECT_ID(N'dbo.CK_Tra_TiposDocumento_Tamano', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Tra_TiposDocumento] WITH CHECK ADD CONSTRAINT [CK_Tra_TiposDocumento_Tamano] CHECK ([TamanoMaximoMb] IS NULL OR [TamanoMaximoMb]>(0)); ALTER TABLE [dbo].[Tra_TiposDocumento] CHECK CONSTRAINT [CK_Tra_TiposDocumento_Tamano]; END; IF OBJECT_ID(N'dbo.CK_Conta_PrePolizas_Concepto', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Conta_PrePolizas] WITH CHECK ADD CONSTRAINT [CK_Conta_PrePolizas_Concepto] CHECK (rtrim([Concepto])<>''); ALTER TABLE [dbo].[Conta_PrePolizas] CHECK CONSTRAINT [CK_Conta_PrePolizas_Concepto]; END; IF OBJECT_ID(N'dbo.CK_Conta_PrePolizas_Fecha_2000_2050', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Conta_PrePolizas] WITH CHECK ADD CONSTRAINT [CK_Conta_PrePolizas_Fecha_2000_2050] CHECK ([Fecha]>='2000-01-01' AND [Fecha]<='2050/12/31'); ALTER TABLE [dbo].[Conta_PrePolizas] CHECK CONSTRAINT [CK_Conta_PrePolizas_Fecha_2000_2050]; END; IF OBJECT_ID(N'dbo.CK_Conta_PrePolizas_FolioPoliza', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Conta_PrePolizas] WITH CHECK ADD CONSTRAINT [CK_Conta_PrePolizas_FolioPoliza] CHECK ([IdPoliza]>(0) AND isnull([FolioPoliza],(0))>(0) OR ([IdPoliza] IS NULL OR [IdPoliza]=(0))); ALTER TABLE [dbo].[Conta_PrePolizas] CHECK CONSTRAINT [CK_Conta_PrePolizas_FolioPoliza]; END; IF OBJECT_ID(N'dbo.CK_Sis_PoliticasLimpieza_DiasRetencion', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Sis_PoliticasLimpieza] WITH CHECK ADD CONSTRAINT [CK_Sis_PoliticasLimpieza_DiasRetencion] CHECK ([DiasRetencion]>=(30) AND [DiasRetencion]<=(3650)); ALTER TABLE [dbo].[Sis_PoliticasLimpieza] CHECK CONSTRAINT [CK_Sis_PoliticasLimpieza_DiasRetencion]; END; IF OBJECT_ID(N'dbo.CK_Sis_PoliticasLimpieza_TamanoLote', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Sis_PoliticasLimpieza] WITH CHECK ADD CONSTRAINT [CK_Sis_PoliticasLimpieza_TamanoLote] CHECK ([TamanoLote]>=(1) AND [TamanoLote]<=(10000)); ALTER TABLE [dbo].[Sis_PoliticasLimpieza] CHECK CONSTRAINT [CK_Sis_PoliticasLimpieza_TamanoLote]; END; IF OBJECT_ID(N'dbo.CK_Sis_UsuariosAutorizaciones_Estado', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Sis_UsuariosAutorizaciones] WITH CHECK ADD CONSTRAINT [CK_Sis_UsuariosAutorizaciones_Estado] CHECK ([EstadoAutorizacion]='Cancelada' OR [EstadoAutorizacion]='Rechazada' OR [EstadoAutorizacion]='Aprobada' OR [EstadoAutorizacion]='Pendiente'); ALTER TABLE [dbo].[Sis_UsuariosAutorizaciones] CHECK CONSTRAINT [CK_Sis_UsuariosAutorizaciones_Estado]; END; IF OBJECT_ID(N'dbo.CK_Tra_SolicitudesDependencias_Diferentes', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Tra_SolicitudesDependencias] WITH CHECK ADD CONSTRAINT [CK_Tra_SolicitudesDependencias_Diferentes] CHECK ([CveSolicitud]<>[CveSolicitudRequerida]); ALTER TABLE [dbo].[Tra_SolicitudesDependencias] CHECK CONSTRAINT [CK_Tra_SolicitudesDependencias_Diferentes]; END; IF OBJECT_ID(N'dbo.CK_AsientoContableCompras', N'C') IS NULL BEGIN ALTER TABLE [dbo].[ProductosServicios] WITH CHECK ADD CONSTRAINT [CK_AsientoContableCompras] CHECK ([AsientoContableCompras]=(3) OR [AsientoContableCompras]=(2) OR [AsientoContableCompras]=(1)); ALTER TABLE [dbo].[ProductosServicios] CHECK CONSTRAINT [CK_AsientoContableCompras]; END; IF OBJECT_ID(N'dbo.CK_AsientoContableVentas', N'C') IS NULL BEGIN ALTER TABLE [dbo].[ProductosServicios] WITH CHECK ADD CONSTRAINT [CK_AsientoContableVentas] CHECK ([AsientoContableVentas]=(2) OR [AsientoContableVentas]=(1)); ALTER TABLE [dbo].[ProductosServicios] CHECK CONSTRAINT [CK_AsientoContableVentas]; END; IF OBJECT_ID(N'dbo.CK_ProductosServicios_IVA', N'C') IS NULL BEGIN ALTER TABLE [dbo].[ProductosServicios] WITH CHECK ADD CONSTRAINT [CK_ProductosServicios_IVA] CHECK ([IVA]=(-1) OR [IVA]=(0) OR [IVA] IS NULL); ALTER TABLE [dbo].[ProductosServicios] CHECK CONSTRAINT [CK_ProductosServicios_IVA]; END; IF OBJECT_ID(N'dbo.CK_Sis_Notificaciones_Estado', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Sis_Notificaciones] WITH CHECK ADD CONSTRAINT [CK_Sis_Notificaciones_Estado] CHECK ([EstadoNotificacion]='Cancelada' OR [EstadoNotificacion]='Fallida' OR [EstadoNotificacion]='Enviada' OR [EstadoNotificacion]='Pendiente'); ALTER TABLE [dbo].[Sis_Notificaciones] CHECK CONSTRAINT [CK_Sis_Notificaciones_Estado]; END; IF OBJECT_ID(N'dbo.CK_Sis_Notificaciones_Tipo', N'C') IS NULL BEGIN ALTER TABLE [dbo].[Sis_Notificaciones] WITH CHECK ADD CONSTRAINT [CK_Sis_Notificaciones_Tipo] CHECK ([TipoNotificacion]='Campana' OR [TipoNotificacion]='Push' OR [TipoNotificacion]='Correo' OR [TipoNotificacion]='SignalR' OR [TipoNotificacion]='WhatsApp' OR [TipoNotificacion]='Local'); ALTER TABLE [dbo].[Sis_Notificaciones] CHECK CONSTRAINT [CK_Sis_Notificaciones_Tipo]; END; IF COL_LENGTH(N'dbo.Banc_CreditosDetalle', N'IVA') IS NULL ALTER TABLE [dbo].[Banc_CreditosDetalle] ADD [IVA] AS (([IVACapital]+[IVAIntereses])+[IVASeguro]); IF COL_LENGTH(N'dbo.Banc_CreditosDetalle', N'Total') IS NULL ALTER TABLE [dbo].[Banc_CreditosDetalle] ADD [Total] AS ((((([Capital]+[Intereses])+[Seguro])+[IVACapital])+[IVAIntereses])+[IVASeguro]); IF COL_LENGTH(N'dbo.Ventas', N'DiasVencimiento') IS NULL ALTER TABLE [dbo].[Ventas] ADD [DiasVencimiento] AS (datediff(day,[FechaVencimiento2],getdate())); IF COL_LENGTH(N'dbo.Ventas', N'SerieFolio') IS NULL ALTER TABLE [dbo].[Ventas] ADD [SerieFolio] AS ((concat(case when [Serie]<>'' then [Serie]+'-' else '' end,[Folio])) collate Modern_Spanish_CS_AS); IF COL_LENGTH(N'dbo.Conta_PrePolizas', N'AnioMes') IS NULL ALTER TABLE [dbo].[Conta_PrePolizas] ADD [AnioMes] AS ((CONVERT([varchar](6),[Fecha],(112))) collate Modern_Spanish_CS_AS) PERSISTED; IF COL_LENGTH(N'dbo.ProductosServicios', N'CodigoPS') IS NULL ALTER TABLE [dbo].[ProductosServicios] ADD [CodigoPS] AS ((case when len([Codigo])>(0) then concat(([Codigo]) collate Modern_Spanish_CI_AS,' - ',([PS]) collate Modern_Spanish_CI_AS) else ([PS]) collate Modern_Spanish_CI_AS end) collate Modern_Spanish_CI_AS); IF NOT EXISTS(SELECT 1 FROM sys.indexes WHERE object_id=OBJECT_ID(N'dbo.Sis_UsuariosClientes') AND name=N'UX_Sis_UsuariosClientes_Usuario_Orden') CREATE UNIQUE NONCLUSTERED INDEX [UX_Sis_UsuariosClientes_Usuario_Orden] ON [dbo].[Sis_UsuariosClientes] ([CveUsuario] ASC,[Orden] ASC) WHERE ([Activo]=(1)) WITH (PAD_INDEX=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON) ON [PRIMARY]; IF NOT EXISTS(SELECT 1 FROM sys.indexes WHERE object_id=OBJECT_ID(N'dbo.Sis_Usuarios') AND name=N'UQ_Sis_Usuarios_CorreoElectronico') CREATE UNIQUE NONCLUSTERED INDEX [UQ_Sis_Usuarios_CorreoElectronico] ON [dbo].[Sis_Usuarios] ([CorreoElectronico] ASC) WHERE ([CorreoElectronico] IS NOT NULL) WITH (PAD_INDEX=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON) ON [PRIMARY]; IF NOT EXISTS(SELECT 1 FROM sys.indexes WHERE object_id=OBJECT_ID(N'dbo.Tra_Preguntas') AND name=N'UX_Tra_Preguntas_Codigo') CREATE UNIQUE NONCLUSTERED INDEX [UX_Tra_Preguntas_Codigo] ON [dbo].[Tra_Preguntas] ([Codigo] ASC) WHERE ([Codigo] IS NOT NULL) WITH (PAD_INDEX=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON) ON [PRIMARY]; END TRY BEGIN CATCH SET @Mensaje = CONCAT(@Mensaje, N' Error al restaurar dependencias: ', ERROR_MESSAGE()); END CATCH; USE [master]; ALTER DATABASE [SIG_PlataformaDesarolladores] SET MULTI_USER; THROW 51001, @Mensaje, 1; END CATCH;