How do I use cascade delete with SQL Server?

后端 未结 8 1139
抹茶落季
抹茶落季 2020-11-22 01:12

I have 2 tables: T1 and T2, they are existing tables with data. We have a one to many relationship between T1 and T2. How do I alter the table definitions to perform casca

8条回答
  •  走了就别回头了
    2020-11-22 01:37

    ON DELETE CASCADE
    It specifies that the child data is deleted when the parent data is deleted.

    CREATE TABLE products
    ( product_id INT PRIMARY KEY,
      product_name VARCHAR(50) NOT NULL,
      category VARCHAR(25)
    );
    
    CREATE TABLE inventory
    ( inventory_id INT PRIMARY KEY,
      product_id INT NOT NULL,
      quantity INT,
      min_level INT,
      max_level INT,
      CONSTRAINT fk_inv_product_id
        FOREIGN KEY (product_id)
        REFERENCES products (product_id)
        ON DELETE CASCADE
    );
    

    For this foreign key, we have specified the ON DELETE CASCADE clause which tells SQL Server to delete the corresponding records in the child table when the data in the parent table is deleted. So in this example, if a product_id value is deleted from the products table, the corresponding records in the inventory table that use this product_id will also be deleted.

提交回复
热议问题