48 lines
1.6 KiB
Transact-SQL
48 lines
1.6 KiB
Transact-SQL
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 |