建立、改變和移除外部索引鍵
在 SQL Server 管理物件 (SMO) 中,外部索引鍵是由 ForeignKey 物件表示。
若要在 SMO 中建立外部索引鍵,您必須在 ForeignKey 物件的建構函式中,指定會在其上定義外部索引鍵的資料表。您必須從該資料表至少選取一個資料行做為外部索引鍵。若要進行這項作業,請建立 ForeignKeyColumn 物件變數,並指定做為外部索引鍵之資料行的名稱。然後,指定參考的資料表和參考的資料行。使用 Add 方法,將資料行加入至 Columns 物件屬性。
代表外部索引鍵的資料行會列在 ForeignKey 物件的 Columns 物件屬性中。外部索引鍵所參考的主要金鑰是由 ReferencedKey 屬性表示,該屬性位於 ReferencedTable 屬性所指定的資料表。
範例
如果要使用所提供的任何程式碼範例,您必須選擇用於建立應用程式的程式設計環境、程式設計範本和程式設計語言。如需詳細資訊,請參閱<如何:在 Visual Studio .NET 中建立 Visual Basic SMO 專案>或<如何:在 Visual Studio .NET 中建立 Visual C# SMO 專案>。
在 Visual Basic 中建立、改變和移除外部索引鍵
此程式碼範例示範如何在某個資料表的一個或多個資料行以及另一個資料表的主要金鑰資料行之間,建立外部索引鍵關聯性。
'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()
在 Visual C# 中建立、改變和移除外部索引鍵
此程式碼範例示範如何在某個資料表的一個或多個資料行以及另一個資料表的主要金鑰資料行之間,建立外部索引鍵關聯性。
{
//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();
}