2015-08-18 77 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) 
相關問題