2015-08-18 111 views
0

如果您使用的是SQL Management Studio,您可以右键单击对象资源管理器中的外键,选择脚本键另存为,创建到,它将创建SQL脚本FK。是否有SQL命令来生成脚本来创建外键?

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

+0

使用“select * from sys.syscomments”。您始终可以找到脚本来在文本列上生成任何数据库对象。 – Helio

+0

我不确定我的问题是否清楚 - 我不问如何创建FK,我要求的脚本会生成一个脚本来创建FK。 – Liath

+0

存储在SYS.SYSCOMMENTS中的所有现有数据库对象的创建脚本。 – Helio

回答

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(); 
    } 
} 
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) 
) 

SQL外键约束的ALTER TABLE 要在“P_Id”列创建一个外键约束时表已经创建了“订单”,使用下面的SQL:

的MySQL/SQL服务器/ ORACLE/MS访问:

ALTER TABLE Orders 
ADD FOREIGN KEY (P_Id) 
REFERENCES Persons(P_Id) 
相关问题