AspNetUsers 테이블에 사용자를 삽입 할 수 없습니다, 그러나 나는 다음과 같은 오류 얻을 :내가 저장 프로 시저를 사용하여 AspNetUsers 테이블을 채우기 위해 노력하고
Msg 515, Level 16, State 2, Procedure Insert_Users, Line 36 Cannot insert the value NULL into column 'Id', table 'MyDatabase.dbo.AspNetUsers'; column does not allow nulls. INSERT fails.
난에 다음과 같은 속성이 존재해야한다는 다른 게시물에 읽기 열 Id : [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
, 그러나 나는 물리적으로 선언 된 곳을 찾을 수 없습니다.
시간이 없으므로 모든 사용자를 수동으로 삽입하고 싶지 않으므로 최대한 빨리해야합니다.
BEGIN
SET NOCOUNT ON;
DECLARE @id uniqueidentifier
DECLARE @email nvarchar(256)
DECLARE @emailconfirmed bit
SET @emailconfirmed = 0
DECLARE @twofactorenabled bit
SET @twofactorenabled = 0
DECLARE @lockoutenabled bit
SET @lockoutenabled = 1
DECLARE @accessFailed bit
SET @accessFailed = 1
DECLARE @username nvarchar(256)
DECLARE @fname nvarchar(50)
DECLARE @lname nvarchar(50)
DECLARE @athleteKey int
SET @athleteKey = 41809
DECLARE @atheletsCount int
SET @atheletsCount = 0;
SET @atheletsCount = (SELECT COUNT(*) FROM [BIBD].[dbo].[Athlete])
WHILE @athleteKey < @atheletsCount
SET @id = NEWID() --Line 36
print CAST(@id AS nvarchar(128))
SET @fname = (SELECT FirstName FROM [BIBD].[dbo].[Athlete] where [email protected])
SET @lname = (SELECT LastName FROM [BIBD].[dbo].[Athlete] where [email protected])
SET @username = CONCAT(LOWER(@fname),'.',LOWER(@lname))
SET @email = CONCAT(LOWER(@fname), '.', LOWER(@lname), '@gmail.com')
INSERT INTO [MyDatabase].[dbo].[AspNetUsers]
(Id
,Email
,EmailConfirmed
,[TwoFactorEnabled]
,LockoutEnabled
,AccessFailedCount
,UserName
,FirstName
,LastName)
VALUES
(CAST(@id AS nvarchar(128))
,@email
,@emailconfirmed
,@twofactorenabled
,@lockoutenabled
,@accessFailed
,@username
,@fname
,@lname)
IF @athleteKey % 5 = 0
INSERT INTO [MyDatabase].[dbo].[AspNetUserRoles]
(UserId,RoleId) VALUES (@id, 3)
ELSE
INSERT INTO [MyDatabase].[dbo].[AspNetUserRoles]
(UserId,RoleId) VALUES (@id, 4)
SET @athleteKey = @athleteKey+1
END
저장 프로 시저 란 무엇입니까? – ESG
id의 열 데이터 형식은 무엇입니까? – Ian
@Ian nvarchar (128) – user1012732