· 9 years ago · Nov 25, 2016, 02:14 AM
1--a parent table
2CREATE TABLE [WorkingPlace]
3(
4 [WorkingPlaceID] INT IDENTITY(1,1) PRIMARY KEY,
5 [Location] VARCHAR(100) NOT NULL UNIQUE
6)
7
8--child table
9IF NOT EXISTS (SELECT * FROM sys.tables WHERE NAME ='Store')
10CREATE TABLE [Store]
11(
12 --FOREIGN KEY
13 [WorkingPlaceID] INT PRIMARY KEY
14 REFERENCES WorkingPlace(WorkingPlaceID)
15 ON DELETE CASCADE ,
16 [Sales] DECIMAL NOT NULL,
17 [Profit] DECIMAL NOT NULL,
18)
19
20--child table
21IF NOT EXISTS (SELECT * FROM sys.tables WHERE NAME ='Warehouse')
22CREATE TABLE [Warehouse]
23(
24 [WorkingPlaceID] INT PRIMARY KEY
25 REFERENCES WorkingPlace(WorkingPlaceID)
26 ON DELETE CASCADE
27)
28
29CREATE TABLE Supply
30(
31 [WarehouseID] INT NOT NULL,
32 [StoreID] INT NOT NULL,
33 PRIMARY KEY (WarehouseID,StoreID)
34)
35
36ALTER TABLE supply
37 ADD CONSTRAINT SUPPLY_WAREHOUSE FOREIGN KEY (WarehouseID)
38 REFERENCES Warehouse (WorkingPlaceID)
39 ON DELETE CASCADE
40 ON UPDATE CASCADE;
41
42Msg 1785, Level 16, State 0, Line 279
43Introducing FOREIGN KEY constraint 'SUPPLY_WAREHOUSE' on table 'Supply' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.