-- Run this script against the Housing database before running the app. -- It creates the login table and login procedures. IF OBJECT_ID(N'dbo.Operator_Account', N'U') IS NULL BEGIN CREATE TABLE dbo.Operator_Account ( [Operator] NVARCHAR(10) NOT NULL CONSTRAINT PK_Operator_Account PRIMARY KEY, [Password] NVARCHAR(50) NOT NULL, [CreatedAt] DATETIME2(0) NOT NULL CONSTRAINT DF_Operator_Account_CreatedAt DEFAULT (SYSDATETIME()), [UpdatedAt] DATETIME2(0) NULL ); END; GO IF COL_LENGTH(N'dbo.Operator_Account', N'IsActive') IS NOT NULL BEGIN DECLARE @DefaultConstraintName SYSNAME; SELECT @DefaultConstraintName = dc.name FROM sys.default_constraints AS dc INNER JOIN sys.columns AS c ON c.default_object_id = dc.object_id WHERE dc.parent_object_id = OBJECT_ID(N'dbo.Operator_Account', N'U') AND c.name = N'IsActive'; IF @DefaultConstraintName IS NOT NULL BEGIN EXEC(N'ALTER TABLE dbo.Operator_Account DROP CONSTRAINT [' + @DefaultConstraintName + N']'); END; ALTER TABLE dbo.Operator_Account DROP COLUMN [IsActive]; END; GO IF EXISTS (SELECT 1 FROM dbo.Operator_Account WHERE [Operator] = N'su') BEGIN UPDATE dbo.Operator_Account SET [Password] = N'su', [UpdatedAt] = SYSDATETIME() WHERE [Operator] = N'su'; END ELSE BEGIN INSERT INTO dbo.Operator_Account ( [Operator], [Password] ) VALUES ( N'su', N'su' ); END; GO CREATE OR ALTER PROCEDURE dbo.CheckOperator @Operator NVARCHAR(10), @Password NVARCHAR(50) AS BEGIN SET NOCOUNT ON; SELECT CAST( CASE WHEN EXISTS ( SELECT 1 FROM dbo.Operator_Account WHERE [Operator] = @Operator AND [Password] = @Password ) THEN 1 ELSE 0 END AS BIT) AS IsValid; END; GO CREATE OR ALTER PROCEDURE dbo.SaveOperator @Operator NVARCHAR(10), @Password NVARCHAR(50) AS BEGIN SET NOCOUNT ON; IF EXISTS (SELECT 1 FROM dbo.Operator_Account WHERE [Operator] = @Operator) BEGIN UPDATE dbo.Operator_Account SET [Password] = @Password, [UpdatedAt] = SYSDATETIME() WHERE [Operator] = @Operator; END ELSE BEGIN INSERT INTO dbo.Operator_Account ( [Operator], [Password] ) VALUES ( @Operator, @Password ); END; END; GO