if exists (select top 1 1 from sys.objects where name = 'AppUser' and type = 'U') and not exists(select top 1 1 from sys.columns where name = 'SecurityStamp' and object_id = object_id('AppUser')) begin select * into #TmpAppUser from AppUser drop table AppUser end if not exists (select top 1 1 from sys.objects where name = 'AppUser' and type = 'U') begin create table AppUser ( UserId int identity(0, 1) constraint PK_AppUser primary key, UserName varchar(100) not null constraint UQ_AppUser_UserName unique, [Password] varchar(100) not null, FirstName varchar(100), LastName varchar(100), Email varchar(100), ProfilePictureUrl varchar(200), SecurityStamp varchar(200) not null constraint UQ_AppUser_SecurityStamp unique, StatusId int not null constraint FK_AppUser_UserStatus references UserStatus(StatusId), CreationDate datetime not null constraint DF_AppUser_CreationDate default getdate(), FailedLoginAttempts int, LastLoginDate datetime, PasswordChangeDate datetime ) end go if not exists (select top 1 1 from sys.indexes where name = 'IDX_AppUser_Email_NOTNULL' AND object_id = OBJECT_ID('AppUser')) begin CREATE UNIQUE NONCLUSTERED INDEX IDX_AppUser_Email_NOTNULL ON AppUser(Email) WHERE Email IS NOT NULL end go if not exists (select top 1 1 from AppUser) begin declare @activeStatusId int select @activeStatusId = StatusId from UserStatus where StatusCode = 'ACTIVE' insert into AppUser(UserName, [Password], CreationDate, SecurityStamp, StatusId) select UserName, [Password], CreationDate, cast(newid() as varchar(100)), @activeStatusId as StatusId from #TmpAppUser drop table #TmpAppUser end go