Comment créez-vous une relation de clé étrangère dans une firebase database SQL Server CE (Compact Edition)?

Visual Studio 2005 ne fournit pas d’interface pour créer des relations entre les tables d’une firebase database SQL Server CE (j’utilise la version 3.0) et vous ne pouvez pas ouvrir une firebase database Compact Edition à l’aide de Management Studio. Des idées?

Malheureusement, il n’existe actuellement aucune prise en charge de concepteur (contrairement à SQL Server 2005) pour la création de relations entre les tables dans SQL Server CE. Pour créer des relations, vous devez utiliser des commandes SQL telles que:

ALTER TABLE Orders ADD CONSTRAINT FK_Customer_Order FOREIGN KEY (CustomerId) REFERENCES Customers(CustomerId) 

Si vous faites du développement CE, je vous recommande cette FAQ:

EDIT : Dans Visual Studio 2008, il est désormais possible d’effectuer cette opération dans l’interface graphique en cliquant avec le bouton droit sur votre table.

Visual Studio 2008 a un concepteur qui vous permet d’append des FK. Cliquez avec le bouton droit sur la table … Propriétés du tableau, puis accédez à la section “Ajouter des relations”.

HTH

Vous devez créer une requête (dans Visual Studio, cliquez avec le bouton droit sur la connexion à la firebase database -> Nouvelle requête) et exécutez le code SQL suivant:

 ALTER TABLE tblAlpha ADD CONSTRAINT MyConstraint FOREIGN KEY (FK_id) REFERENCES tblGamma(GammaID) ON UPDATE CASCADE 

Pour vérifier que votre clé étrangère a été créée, exécutez le code SQL suivant:

 SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS 

Nous remercions E Jensen ( http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=532377&SiteID=1 )

Alan a raison quand il dit qu’il y a un support de designer. Rhywun est incorrect quand il implique que vous ne pouvez pas choisir la table de clés étrangères. Ce qu’il veut dire, c’est que la liste des clés étrangères est grisée dans l’UI, ce qui signifie qu’il n’a pas cliqué avec le bouton droit sur la table appropriée pour append la clé étrangère.

En résumé, cliquez avec le bouton droit de la souris sur la table des clés étrangères et sélectionnez ensuite la table de clés primaire associée via l’option “Propriétés de la table”> “Ajouter des relations”.

Je l’ai fait plusieurs fois et ça marche.

Procédure pas à pas: création d’une firebase database SQL Server Compact 3.5

Pour créer une relation entre les tables créées lors de la procédure précédente

  1. Dans Explorateur de serveurs / Explorateur de bases de données, développez Tables.
  2. Cliquez avec le bouton droit sur la table Orders, puis cliquez sur Propriétés du tableau.
  3. Cliquez sur Ajouter des relations.
  4. Tapez FK_Orders_Customers dans la zone Nom de la relation.
  5. Sélectionnez CustomerID dans la liste Colonne de la table de clés étrangères.
  6. Cliquez sur Ajouter des colonnes.
  7. Cliquez sur Ajouter une relation.
  8. Cliquez sur OK pour terminer le processus et créer la relation dans la firebase database.
  9. Cliquez à nouveau sur OK pour fermer la boîte de dialog Propriétés du tableau.
 create table employee ( empid int, empname varchar(40), designation varchar(30), hiredate datetime, Bsalary int, depno constraint emp_m foreign key references department(depno) ) 

Nous devrions avoir une clé primaire pour créer une clé étrangère ou une relation entre deux tables ou plus.

Je sais que c’est “très long” depuis que cette question a été posée pour la première fois. Juste au cas où, si ça aide quelqu’un,

L’ajout de relations est bien pris en charge par MS via SQL Server Compact Tool Box ( https://sqlcetoolbox.codeplex.com/ ). Il suffit de l’installer, vous aurez alors la possibilité de vous connecter à la firebase database compacte à l’aide de la fenêtre Explorateur de serveur. Cliquez avec le bouton droit sur la table principale, sélectionnez “Propriétés de la table”. Vous devriez avoir la fenêtre suivante, qui contient l’onglet “Ajouter des relations” vous permettant d’append des relations.

Onglet Ajouter des relations - Boîte à outils SQL Server Compact