MS SQL サーバー
スタースキーマを作っています。PK's
テーブルにandを設定しました。FK
現在、制約を削除し、テーブルを切り捨て、制約を再度追加し、テーブルを再作成するプロシージャを作成しようとしています。制約を削除しようとすると、次のエラーが表示されます。
「制約はテーブル、外部キー制約PK_TIMEDIM
によって参照されています。制約を削除できませんでした。」SalesFactTable
FK_SALESFACTTABLE
編集: 1 つの問題が解決されました。もう一つ見つかりました。などの不思議な自動生成があることを除いて、同じエラーが表示さFK's
れFK__SalesFact__CUST___19DFD96B
ます。
私が間違っていることを教えてください。
ALTER PROCEDURE [dbo].[A11]
AS
BEGIN
--Drop constraints
ALTER TABLE SalesFactTable
DROP CONSTRAINT FK_SALESFACTTABLE
ALTER TABLE SalesFactTable
DROP CONSTRAINT PK_SALESFACTTABLE
ALTER TABLE TimeDim
DROP CONSTRAINT PK_TIMEDIM
ALTER TABLE CustomerDim
DROP CONSTRAINT PK_CUSTOMERDIM
ALTER TABLE PartDim
DROP CONSTRAINT PK_PARTDIM
--Truncate tables
TRUNCATE TABLE TimeDim
TRUNCATE TABLE CustomerDim
TRUNCATE TABLE PartDim
TRUNCATE TABLE SalesFactTable
--Add constraints
ALTER TABLE TimeDim
ADD CONSTRAINT PK_TIMEDIM PRIMARY KEY (TIME_ID)
ALTER TABLE CustomerDim
ADD CONSTRAINT PK_CUSTOMERDIM PRIMARY KEY (CUST_ID)
ALTER TABLE PartDim
ADD CONSTRAINT PK_PARTDIM PRIMARY KEY (PART_ID)
ALTER TABLE SalesFactTable
ADD CONSTRAINT FK_SALESFACTTABLE FOREIGN KEY (TIME_ID) REFERENCES TimeDim (TIME_ID),
FOREIGN KEY (CUST_ID) REFERENCES CustomerDim (CUST_ID),
FOREIGN KEY (PART_ID) REFERENCES PartDim (PART_ID)
ALTER TABLE SalesFactTable
ADD CONSTRAINT PK_SALESFACTTABLE PRIMARY KEY (TIME_ID, CUST_ID, PART_ID)