IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

Problème sur une jointure, enfin je crois


Sujet :

Développement SQL Server

  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut Problème sur une jointure, enfin je crois
    Bonjour

    Je suis confronté à un souci de conception, je pense. Je tourne en rond depuis trois jours dessus et je deviens un peu chèvre.

    Alors, je vais commencé par rpésenter ma structure de données. Pour des raisons de commodité de mon développement de site, j'ai pris le parti de stocker mes données utilisateur de manière verticale. Cela me donne l'élasticité dont j'ai besoins pour gérer les choses. Ma table est donc composée d'un identifiant de ligne, d'un identifiant d'utilisateur, d'un identifiant de donnée et de la donne elle même (je mets un script de création et de remplissage de table plus loin).

    D'autres informations sur l'utilisateur sont stockées dans une autre table appartenant au MemberShip du FrameWork .NET de Microsoft. Le lien entre les tables se fait sur l'Identifiant au format UNIQUEIDENTIFIER.

    Maintenant je voudrais pouvoir faire une requête qui me permet de remonter mes données selon des critères pris dans les valeurs stockées. Mon problème se situe sur le cumul des critères que je n'arrive pas à faire et je comprends pas pourquoi. Voici ma requête actuelle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    DECLARE @CurrentUser UNIQUEIDENTIFIER, @ApplicationId UNIQUEIDENTIFIER
    SET @CurrentUser = '20174440-EFB5-4C81-9449-C0999B0636B3'
    SET @ApplicationId = '6723d757-bb46-4bd1-91bd-a06d3e924373'
     
    SELECT U.UserId, CreateDate, U.UserName
    FROM dbo.aspnet_Users U  
    INNER JOIN dbo.aspnet_Membership M ON M.UserId = U.UserId AND U.ApplicationId = @ApplicationId
    INNER JOIN (SELECT UserId, Valeur_Info AS Valeur_Info FROM dbo.SITE_Information_Membre 
    	WHERE Id_Info_Formulaire = 1 AND Valeur_Info = '1') IM1 ON IM1.UserId = U.UserId
    INNER JOIN (SELECT UserId, ISNULL(Valeur_Info,'') AS Valeur_Info FROM dbo.SITE_Information_Membre 
    	WHERE Id_Info_Formulaire = 2 AND Valeur_Info = '4') IM2 ON IM2.UserId = U.UserId
    WHERE U.UserID <> @CurrentUser
    Dans l'exemple de remplissage de la table dbo.SITE_Information_Membre vous verrez que cette requête doit me remonter une ligne alors qu'elle ne m'en remonte aucune alors que si je ne mets que la jointure avc IM1 elle me remonte bien la ligne voulue.

    Pouvez vous m'aider ?

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_PADDING ON
    GO
    CREATE TABLE [dbo].[SITE_Information_Membre](
    	[Id_Info_Membre] [int] IDENTITY(1,1) NOT NULL,
    	[UserId] [uniqueidentifier] NOT NULL,
    	[Id_Info_Formulaire] [int] NULL CONSTRAINT [DF_SITE_Information_Membre_Id_Info_Formulaire]  DEFAULT ((0)),
    	[Valeur_Info] [varchar](1000) NULL CONSTRAINT [DF_SITE_Information_Membre_Valeur_Info]  DEFAULT (''),
     CONSTRAINT [PK_SITE_Information_Membre] PRIMARY KEY CLUSTERED 
    (
    	[Id_Info_Membre] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    ) ON [PRIMARY]
     
    GO
    SET ANSI_PADDING OFF
     
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,1,1)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,2,3)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,3,Muzillac)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,18,19)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,4,1)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,5,1)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,6,0)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,7,1)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,8,)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,9,Ma description)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,1,2)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,2,4)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,3,Cherbourg)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,18,19)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,4,1)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,5,1)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,6,0)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,7,1)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,8,1,2,3)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,9,Ma description)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,10,1)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,11,3)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,19,18!46)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,12,NANTES)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,13,1!1)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,14,1!1)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,15,1,2)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,16,1)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,17,1,4,5)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (EDD89C6C-5F63-4EC0-97EC-99D582527164,1,1)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (EDD89C6C-5F63-4EC0-97EC-99D582527164,2,1)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (EDD89C6C-5F63-4EC0-97EC-99D582527164,3,Pontivy)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (EDD89C6C-5F63-4EC0-97EC-99D582527164,18,34)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (EDD89C6C-5F63-4EC0-97EC-99D582527164,4,30)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (EDD89C6C-5F63-4EC0-97EC-99D582527164,5,29)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (EDD89C6C-5F63-4EC0-97EC-99D582527164,6,0)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (EDD89C6C-5F63-4EC0-97EC-99D582527164,7,1)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (EDD89C6C-5F63-4EC0-97EC-99D582527164,8,)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (EDD89C6C-5F63-4EC0-97EC-99D582527164,9,Ma description)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,10,2)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,11,1)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,19,18!25)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,12,Sa ville)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,13,1!1)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,14,1!1)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,15,)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,16,)
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,17,)

  2. #2
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Je me permets de revenir sur ce sujet. Est ce qu'il y a quelquechose de pas clair dans mon exposé ou est ce que je pose une colle insoluble ou tout simplement ma réponse est tellement basique que je devrais la trouver tout seul ?

    Je suis vraiment dans la mouise car tout mon site repose sur cette requête et tant que je n'ai pas de solution, je ne peux pas mettre en ligne, c'est mon dernier bloc avant de pouvoir lancer mon site.

    J'en appelle à votre bonté d'âme.
    Merci

  3. #3
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    Je me suis penché sur votre problème, mais j'ai abandonné parce que vous ne nous donnez pas la structure et un jeu d'essai de toutes les tables incluses dans votre requête.

    Sachez que c'est une mauvaise idée que d'avoir stocké des identifiants en utilisant le type UNIQUEIDENTIFIER. Ne vous est-il pas possible de les stocker avec un type entier ?

    Dans l'attente de vos scripts, @++

  4. #4
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Si ce sont les tables aspnet_Users et aspnet_MemberShip, je n'ai pas jugé utile de surcharger le topic avec des tables qui sont présente dans le FrameWork .NET 2.0.

    Maintenant le seul lien dans ces tables sont le UniqueIdentifier, rien d'autre. Mais en plus, vu qu'elles font aprtie du FrameWork il y a une quantité assez importante de TRigger et de Contraintes qui sont dessus, du coup, donner un script pour ces deux tables n'est vraiment pas simple.

    Ensuite pourquoi un UniqueIdentifier (qui selon moi est plutôt une bonne idée, mais je ne voudrais aps tergiverser sur ce point) et bien tout simplement parce que dans le FreameWork, orsque l'on utilise la partie MemberShip tout est en UniqueIdentifier. Si j'avais l'idée saugrenue de vouloir modifier cela (le FrameWork le permet) il faudrait que je corrige environ 250 Procédures Stokées. Voilà pourquoi un UniqueIdentifier.

    Maintenant je ne pense pas que mon souci de jointure vienne du UniqueIdentifier. Je pense plutôt que mon stockage d'information à la Verticale pose plus de souci.

    Question subsidiaire : pourqoui est ce une mauvaise idée, le UniqueIdentifier ?

  5. #5
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Bon, ben s'il faut vraiment tous les scripts voici la création des tables qui manquent

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    USE [siteglobal]
    GO
    /****** Objet*:  Table [dbo].[aspnet_Membership]    Date de génération du script*: 02/06/2009 08:49:51 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE TABLE [dbo].[aspnet_Membership](
    	[ApplicationId] [uniqueidentifier] NOT NULL,
    	[UserId] [uniqueidentifier] NOT NULL,
    	[Password] [nvarchar](128) NOT NULL,
    	[PasswordFormat] [int] NOT NULL DEFAULT ((0)),
    	[PasswordSalt] [nvarchar](128) NOT NULL,
    	[MobilePIN] [nvarchar](16) NULL,
    	[Email] [nvarchar](256) NULL,
    	[LoweredEmail] [nvarchar](256) NULL,
    	[PasswordQuestion] [nvarchar](256) NULL,
    	[PasswordAnswer] [nvarchar](128) NULL,
    	[IsApproved] [bit] NOT NULL,
    	[IsLockedOut] [bit] NOT NULL,
    	[CreateDate] [datetime] NOT NULL,
    	[LastLoginDate] [datetime] NOT NULL,
    	[LastPasswordChangedDate] [datetime] NOT NULL,
    	[LastLockoutDate] [datetime] NOT NULL,
    	[FailedPasswordAttemptCount] [int] NOT NULL,
    	[FailedPasswordAttemptWindowStart] [datetime] NOT NULL,
    	[FailedPasswordAnswerAttemptCount] [int] NOT NULL,
    	[FailedPasswordAnswerAttemptWindowStart] [datetime] NOT NULL,
    	[Comment] [ntext] NULL,
    PRIMARY KEY NONCLUSTERED 
    (
    	[UserId] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
     
    GO
    /****** Objet*:  Table [dbo].[aspnet_Users]    Date de génération du script*: 02/06/2009 08:49:51 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE TABLE [dbo].[aspnet_Users](
    	[ApplicationId] [uniqueidentifier] NOT NULL,
    	[UserId] [uniqueidentifier] NOT NULL DEFAULT (newid()),
    	[UserName] [nvarchar](256) NOT NULL,
    	[LoweredUserName] [nvarchar](256) NOT NULL,
    	[MobileAlias] [nvarchar](16) NULL DEFAULT (NULL),
    	[IsAnonymous] [bit] NOT NULL DEFAULT ((0)),
    	[LastActivityDate] [datetime] NOT NULL,
    PRIMARY KEY NONCLUSTERED 
    (
    	[UserId] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    ) ON [PRIMARY]
     
    GO
    ALTER TABLE [dbo].[aspnet_Membership]  WITH CHECK ADD FOREIGN KEY([ApplicationId])
    REFERENCES [dbo].[aspnet_Applications] ([ApplicationId])
    GO
    ALTER TABLE [dbo].[aspnet_Membership]  WITH CHECK ADD FOREIGN KEY([UserId])
    REFERENCES [dbo].[aspnet_Users] ([UserId])
    GO
    ALTER TABLE [dbo].[aspnet_Users]  WITH CHECK ADD FOREIGN KEY([ApplicationId])
    REFERENCES [dbo].[aspnet_Applications] ([ApplicationId])
    Mais je ne peux pas fournir de code de remplissage car un Insert tout simple ne fonctionne pas. Il faut que je trouve toutes les procédures stockées qui interviennent. Donc, une fois la table créée il aut juste remplir le champs UserID des deux tables avec les UserId de l'autres table, mettre un GUID dans ApplicationID, n'importe lequel et un truc en chaine de caractère dans le UserName, le reste n'a pas d'importance, dans le cas qui me préoccupe.

    Encore une fois, j'ai vraiment besoins d'un coup de main car sans cette Procédure Stockée, je n'ai pas de moteur de recherche et donc mon site n'a aucun intérêt.

    Merci d'avance.

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    Dont ton jeu d'essais il y a une ligne en erreur :
    INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre] ([UserId] ,[Id_Info_Formulaire] ,[Valeur_Info]) VALUES (20174440-EFB5-4C81-9449-C0999B0636B3,8,)

    Et ne correspond pas aux tables données.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  7. #7
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Ok, je vois. En fait je crois que j'ai oublié de gérer les Null quand j'ai fabriqué ce jeu un peu rapidement. Là il n'y a pas de donnée, il suffit de mettre un 0.

    Merci pour ton aide.

Discussions similaires

  1. Problème sur une jointure
    Par gotcha5832 dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/04/2014, 12h48
  2. Réponses: 40
    Dernier message: 02/11/2011, 17h41
  3. Problème performance sur une jointure
    Par chicken92000 dans le forum Développement
    Réponses: 12
    Dernier message: 08/02/2011, 13h57
  4. Réponses: 16
    Dernier message: 20/01/2011, 12h45
  5. Débutant SQL, problème sur une jointure censée exclure ??
    Par derfatypik dans le forum Langage SQL
    Réponses: 8
    Dernier message: 22/06/2005, 15h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo