簡體   English   中英

sql - 將列(表之一的外鍵)添加到數據庫中的所有表

[英]sql - Add column(foreign key to one of the table) to all tables in databases

我正在嘗試向 db 中的所有表添加一個新列,這是其中一個表的外鍵。 理想情況下,我應該將該列添加到所有表而不是外鍵引用的表。

如何將這兩個 SQL 語句組合為一個語句?

// Get all tables except the foreign key reference to
SELECT * 
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA="arthurMurray"
AND TABLE_TYPE="BASE TABLE"
AND TABLE_NAME!="Competitions";

// Add compeition_id to table as a foreign key to competitions table
ALTER TABLE t
ADD competition_id INTEGER,
ADD CONSTRAINT FOREIGN KEY(competition_id) REFERENCES Competitions(id);

任何幫助將不勝感激!

請檢查這個

EXEC sp_MSforeachtable '
if not exists (select * from sys.columns 
               where object_id = object_id(''?'')
               and name = ''CreatedOn'') 
begin
    ALTER TABLE ? ADD CreatedOn datetime NOT NULL DEFAULT getdate();
end';

你可以使用下面的查詢來生成你的alter語句,然后你可以復制粘貼並執行下面的腳本。

SELECT 
  'ALTER TABLE ' +  TABLE_NAME + 'ADD competition_id INTEGER,  ADD CONSTRAINT FOREIGN KEY(competition_id) REFERENCES Competitions(id);'
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA='whatever_schema'
  AND TABLE_TYPE='BASE TABLE'
  AND TABLE_NAME!='Competitions';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM