2013年12月13日 星期五

SQL Foreign Key

SQL Server 在設定還滿方便的
但有碰過圖形介面不給用
只好自己下SQL 查詢了




Alter Table Table_1 Add Foreign Key(Column) References Table_2(Column)

相信很多人對此語法不陌生
建立了可是要刪掉時

Alter Table Table_1 Drop Constraint ....

慘了,剛的Constraint叫什麼名字來著了?
要怎麼刪呢?

找了一下可以利用此語法
Select * From [DB].[sys].[foreign_keys]
找出Constraint 再套進去,便Drop掉Foreign Key了

但若該資料庫有上千個豈不要找到死
所以身為一個懶人要用更懶的方法
身為一個資訊人應該用更專業的方法

IF EXISTS(
SELECT 1
FROM sys.foreign_keys fk
WHERE fk.parent_object_id = OBJECT_ID( N'Table_1')
BEGIN
Declare @statement varchar(200);
Declare @constr_name varchar(200);

SET @constr_name =(
SELECT name 
FROM [aspnet-MvcShopping-20131204173246].[sys].[foreign_keys]
WHERE parent_object_id =    OBJECT_ID( N'Table_1')
);
SET @statement = 'ALTER TABLE Table_1 DROP CONSTRAINT ' + @constr_name;
EXECUTE(@statement);
END;

打完收工

參考……
慘了,要花點時間再重新找一下
待找齊再更新上


沒有留言:

張貼留言