Criando, alterando e removendo chaves estrangeiras
No SQL Server Management Objects (SMO), chaves estrangeiras são representadas pelo objeto ForeignKey.
Para criar uma chave estrangeira no SMO, especifique a tabela na qual a chave estrangeira é definida no construtor do objeto ForeignKey. Na tabela, selecione pelo menos uma coluna como chave estrangeira. Para fazer isso, crie uma variável de objeto ForeignKeyColumn e especifique o nome da coluna que é a chave estrangeira. Em seguida, especifique a tabela e a coluna referenciadas. Use o método Add para adicionar a coluna à propriedade de objeto Columns.
As colunas que representam a chave estrangeira são listadas na propriedade de objeto Columns do objeto ForeignKey. A chave primária referenciada pela chave estrangeira é representada pela propriedade ReferencedKey que está na tabela especificada na propriedade ReferencedTable.
Exemplo
Para usar qualquer exemplo de código fornecido, será necessário escolher o ambiente de programação, o modelo de programação e a linguagem de programação para criar o seu aplicativo. Para obter mais informações, consulte Como criar um projeto SMO do Visual Basic no Visual Studio .NET ou Como criar um projeto SMO do Visual C# no Visual Studio .NET.
Criando, alterando e removendo uma chave estrangeira no Visual Basic
Este exemplo de código mostra como criar um relacionamento de chave estrangeira entre uma ou mais colunas em uma tabela com uma coluna de chave primária em outra tabela.
'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()
Criando, alterando e removendo uma chave estrangeira no Visual C#
Este exemplo de código mostra como criar um relacionamento de chave estrangeira entre uma ou mais colunas em uma tabela com uma coluna de chave primária em outra tabela.
{
//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();
}