如果您使用的是SQL Management Studio,您可以右键单击对象资源管理器中的外键,选择脚本键另存为,创建到,它将创建SQL脚本FK。是否有SQL命令来生成脚本来创建外键?
我想使用SQL脚本来实现这个Management Studio功能,所以我可以自动执行它。有没有我可以运行的脚本,它会生成用于创建FK的脚本,还是我需要从Information_Schema中对它们进行反向工程?
如果您使用的是SQL Management Studio,您可以右键单击对象资源管理器中的外键,选择脚本键另存为,创建到,它将创建SQL脚本FK。是否有SQL命令来生成脚本来创建外键?
我想使用SQL脚本来实现这个Management Studio功能,所以我可以自动执行它。有没有我可以运行的脚本,它会生成用于创建FK的脚本,还是我需要从Information_Schema中对它们进行反向工程?
我不能找到一种方法在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();
}
}
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)
)
SQL外键约束的ALTER TABLE 要在“P_Id”列创建一个外键约束时表已经创建了“订单”,使用下面的SQL:
的MySQL/SQL服务器/ ORACLE/MS访问:
ALTER TABLE Orders
ADD FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
使用“select * from sys.syscomments”。您始终可以找到脚本来在文本列上生成任何数据库对象。 – Helio
我不确定我的问题是否清楚 - 我不问如何创建FK,我要求的脚本会生成一个脚本来创建FK。 – Liath
存储在SYS.SYSCOMMENTS中的所有现有数据库对象的创建脚本。 – Helio