如果您使用的是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