Salut,

Je travaille sur un site ASP.net 3.5 relié à une base de données SQL Server Express.

J'ai généré les éléments de membership (avec regsql).

J'ai besoin d'ajouter des caractéristiques à mes utilisateurs. En l'occurence un n° de tel et un code pin.

J'ai donc créé une table :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
CREATE TABLE [dbo].[TIERS_ST_ToCall](
	[TIERS_ST_ToCall] [uniqueidentifier] NOT NULL CONSTRAINT [DF_TIERS_ST_ToCall_TIERS_ST_ToCall]  DEFAULT (newid()),
	[FK_aspnet_Users_UserId] [uniqueidentifier] NOT NULL,
	[strPhoneNumber] [nvarchar](50) NOT NULL,
	[strPin] [nvarchar](4) NOT NULL,
 CONSTRAINT [PK_TIERS_ST_ToCall] PRIMARY KEY CLUSTERED 
(
	[TIERS_ST_ToCall] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

J'ai créé une relation de [FK_aspnet_Users_UserId] vers [UserId] de la table [aspnet_Users] générée automatiquement.

J'ai ensuite créé la proc :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
ALTER PROCEDURE dbo.SITM_SA_User_ToCall_Add
	(
	@strUserId nvarchar(128),
	@strPhoneNumber nvarchar(50),
	@strPin nvarchar(16)
	)
AS
	Declare @UserId UniqueIdentifier
	SET @UserId  = convert(uniqueidentifier, @strUserId)
	INSERT INTO TIERS_ST_ToCall (
		FK_aspnet_Users_UserId,
		strPhoneNumber,
		strPin)
	VALUES (
		@UserId,
		@strPhoneNumber,
		@strPin
		)
	RETURN @@IDENTITY
Malheureusement, lorsque je l'exécute j'ai le message suivant :

L'instruction INSERT est en conflit avec la contrainte FOREIGN KEY "FK_TIERS_ST_ToCall_aspnet_Users". Le conflit s'est produit dans la base de données "SITM", table "dbo.aspnet_Users", column 'UserId'.
L'instruction a été arrêtée.


Y a t il une astuce pour utiliser un uniqueidentifier comme clef étrangère ?
Si oui, laquelle ?

D'avance merci

Laurent