Partager via


Création, modification et suppression de clés étrangères

Dans SMO (SQL Server Management Objects), les clés étrangères sont représentées par l'objet ForeignKey.

Pour créer une clé étrangère dans SMO, vous devez spécifier la table sur laquelle la clé étrangère est définie dans le constructeur de l'objet ForeignKey. Dans la table, vous devez sélectionner au moins une colonne comme clé étrangère. Pour ce faire, créez une variable objet ForeignKeyColumn et spécifiez le nom de la colonne qui est la clé étrangère. Ensuite, spécifiez la table et la colonne référencées. Utilisez la méthode Add pour ajouter la colonne à la propriété d'objet Columns.

Les colonnes qui représentent la clé étrangère sont répertoriées dans la propriété d'objet Columns de l'objet ForeignKey. La clé primaire référencée par la clé étrangère est représentée par la propriété ReferencedKey qui figure dans la table spécifiée dans la propriété ReferencedTable.

Exemple

Pour utiliser un exemple de code fourni, vous devez sélectionner l'environnement, le modèle et le langage de programmation à utiliser pour créer votre application. Pour plus d'informations, consultez Procédure : créer un projet SMO Visual Basic dans Visual Studio .NET ou Procédure : créer un projet SMO Visual C# dans Visual Studio .NET.

Création, modification et suppression d'une clé étrangère en Visual Basic

Cet exemple de code montre comment créer une relation de clé étrangère entre une ou plusieurs colonnes d'une table et une colonne de clé primaire d'une autre table.

'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Reference the AdventureWorks database.
Dim db As Database
db = srv.Databases("AdventureWorks")
'Declare a Table object variable and reference the Employee table.
Dim tbe As Table
tbe = db.Tables("Employee", "HumanResources")
'Declare another Table object variable and reference the EmployeeAddress table.
Dim tbea As Table
tbea = db.Tables("EmployeeAddress", "HumanResources")
'Define a Foreign Key object variable by supplying the EmployeeAddress as the parent table and the foreign key name in the constructor.
Dim fk As ForeignKey
fk = New ForeignKey(tbea, "test_foreignkey")
'Add EmployeeID as the foreign key column.
Dim fkc As ForeignKeyColumn
fkc = New ForeignKeyColumn(fk, "EmployeeID", "EmployeeID")
fk.Columns.Add(fkc)
'Set the referenced table and schema.
fk.ReferencedTable = "Employee"
fk.ReferencedTableSchema = "HumanResources"
'Create the foreign key on the instance of SQL Server.
fk.Create()

Création, modification et suppression d'une clé étrangère en Visual C#

Cet exemple de code montre comment créer une relation de clé étrangère entre une ou plusieurs colonnes d'une table et une colonne de clé primaire d'une autre table.

{ 
//Connect to the local, default instance of SQL Server. 
Server srv; 
srv = new Server(); 
//Reference the AdventureWorks database. 
Database db; 
db = srv.Databases("AdventureWorks"); 
//Declare a Table object variable and reference the Employee table. 
Table tbe; 
tbe = db.Tables("Employee", "HumanResources"); 
//Declare another Table object variable and reference the EmployeeAddress table. 
Table tbea; 
tbea = db.Tables("EmployeeAddress", "HumanResources"); 
//Define a Foreign Key object variable by supplying the EmployeeAddress as the parent table and the foreign key name in the constructor. 
ForeignKey fk; 
fk = new ForeignKey(tbea, "test_foreignkey"); 
//Add EmployeeID as the foreign key column. 
ForeignKeyColumn fkc; 
fkc = new ForeignKeyColumn(fk, "EmployeeID", "EmployeeID"); 
fk.Columns.Add(fkc); 
//Set the referenced table and schema. 
fk.ReferencedTable = "Employee"; 
fk.ReferencedTableSchema = "HumanResources"; 
//Create the foreign key on the instance of SQL Server. 
fk.Create();
}