是否有SQL命令生成用于创建外键的脚本?

时间:2015-08-18 07:45:11

标签: sql-server

如果您正在使用SQL Management Studio,您可以右键单击对象资源管理器中的外键,选择Script Key As,Create To,它将创建将编写FK脚本的SQL。

我想使用SQL脚本实现此Management Studio功能,因此我可以自动执行它。是否有可以运行的脚本生成用于创建FK的脚本,还是需要从Information_Schema中对它们进行反向工程?

2 个答案:

答案 0 :(得分:0)

CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
)

ALTER TABLE上的SQL FOREIGN KEY约束 要在已创建“订单”表时在“P_Id”列上创建FOREIGN KEY约束,请使用以下SQL:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders
ADD FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

答案 1 :(得分:0)

我找不到在SQL中执行此操作的方法,而是在C#中使用了Server类。

var server = new Server(new ServerConnection(connection));
var db = server.Databases["DataBaseName"];
foreach (Table table in db.Tables)
{
    foreach (ForeignKey thisKey in table.ForeignKeys)
    {
        var script = thisKey.Script();
    }
}