35 lines
1.1 KiB
MySQL
35 lines
1.1 KiB
MySQL
|
|
-- V008: Add MustChangePassword column + IX_Usuario_Activo_Rol index
|
||
|
|
-- Idempotent: re-runnable without errors.
|
||
|
|
SET QUOTED_IDENTIFIER ON;
|
||
|
|
SET ANSI_NULLS ON;
|
||
|
|
SET NOCOUNT ON;
|
||
|
|
GO
|
||
|
|
|
||
|
|
-- Add MustChangePassword column (idempotent via COL_LENGTH check)
|
||
|
|
IF COL_LENGTH('dbo.Usuario', 'MustChangePassword') IS NULL
|
||
|
|
BEGIN
|
||
|
|
ALTER TABLE dbo.Usuario
|
||
|
|
ADD MustChangePassword BIT NOT NULL
|
||
|
|
CONSTRAINT DF_Usuario_MustChangePassword DEFAULT(0);
|
||
|
|
PRINT 'Column MustChangePassword added to dbo.Usuario.';
|
||
|
|
END
|
||
|
|
ELSE
|
||
|
|
PRINT 'Column MustChangePassword already exists — skipping.';
|
||
|
|
GO
|
||
|
|
|
||
|
|
-- Compound index for listado filtrado (Activo + Rol) and anti-lockout guard
|
||
|
|
IF NOT EXISTS (
|
||
|
|
SELECT 1 FROM sys.indexes
|
||
|
|
WHERE name = 'IX_Usuario_Activo_Rol'
|
||
|
|
AND object_id = OBJECT_ID('dbo.Usuario')
|
||
|
|
)
|
||
|
|
BEGIN
|
||
|
|
CREATE INDEX IX_Usuario_Activo_Rol
|
||
|
|
ON dbo.Usuario(Activo, Rol)
|
||
|
|
INCLUDE (Id, Username, Email, UltimoLogin, FechaModificacion);
|
||
|
|
PRINT 'Index IX_Usuario_Activo_Rol created.';
|
||
|
|
END
|
||
|
|
ELSE
|
||
|
|
PRINT 'Index IX_Usuario_Activo_Rol already exists — skipping.';
|
||
|
|
GO
|