如果您正在使用SQL Management Studio,您可以右键单击对象资源管理器中的外键,选择Script Key As,Create To,它将创建将编写FK脚本的SQL。
我想使用SQL脚本实现此Management Studio功能,因此我可以自动执行它。是否有可以运行的脚本生成用于创建FK的脚本,还是需要从Information_Schema中对它们进行反向工程?
答案 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();
}
}