1

をユーザを挿入することはできません列Id:[DatabaseGenerated(DatabaseGeneratedOption.Identity)]、しかし私は物理的に宣言されている場所を見つけることはできません。は、私は、ストアドプロシージャを使用してAspNetUsers表を移入しようとしていますが、私は次のエラーを取得するAspNetUsersテーブルに

私は時間がないため、すべてのユーザーを手動で挿入したくないため、できるだけ早く行う必要があります。

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 
+0

ストアドプロシージャとは何ですか? – ESG

+0

idの列データ型とは何ですか? – Ian

+0

@Ian nvarchar(128) – user1012732

答えて

0

WHILEループでBEGIN-ENDが必要です。
それ以外の場合は、@ idに値を割り当てずにループを処理しません。

関連する問題