J'essaie de créer manuellement un nouvel utilisateur dans ma table mais impossible de générer un type "UniqueIdentifier" sans levée d'exception ...
Voici mon exemple:
DECLARE @id uniqueidentifier
SET @id = NEWID()
INSERT INTO [dbo].[aspnet_Users]
([ApplicationId]
,[UserId]
,[UserName]
,[LoweredUserName]
,[LastName]
,[FirstName]
,[IsAnonymous]
,[LastActivityDate]
,[Culture])
VALUES
('ARMS'
,@id
,'Admin'
,'admin'
,'lastname'
,'firstname'
,0
,'2013-01-01 00:00:00'
,'en')
GO
Exception Trow -> Msg 8169, niveau 16, état 2, ligne 4 Impossible de convertir une chaîne de caractères en identificateur unique.
J'utilise la méthode NEWID () mais ça ne marche pas ...
http://www.dailycoding.com/Posts/generate_new_guid_uniqueidentifier_in_sql_server.aspx
ApplicationId doit être de type UniqueIdentifier
. Votre code fonctionne bien si vous le faites:
DECLARE @TTEST TABLE
(
TEST UNIQUEIDENTIFIER
)
DECLARE @UNIQUEX UNIQUEIDENTIFIER
SET @UNIQUEX = NEWID();
INSERT INTO @TTEST
(TEST)
VALUES
(@UNIQUEX);
SELECT * FROM @TTEST
Par conséquent, je dirais qu'il est prudent de supposer que ApplicationId
n'est pas le type de données correct.
Veuillez vérifier le type de données de la colonne ApplicationId dans le tableau aspnet_Users, le type de données de la colonne ApplicationId doit être uniqueidentifier.
* L'ordre des paramètres est mal passé, le paramètre @id doit être passé comme premier argument, mais dans votre script, il est placé dans le deuxième argument. . *
Donc, l'erreur est soulevée ..
Veuillez consulter un exemple de script:
DECLARE @id uniqueidentifier
SET @id = NEWID()
Create Table #temp1(AppId uniqueidentifier)
insert into #temp1 values(@id)
Select * from #temp1
Drop Table #temp1