tailieunhanh - Microsoft SQL Server 2000 Programming by Example phần 5

Bởi vì dữ liệu được để thể chất, có là không cần cho thêm một lớp với các giá trị quan trọng để cộng thêm con trỏ đến các hàng vật lý. Hình 6,13. Mức chỉ số nhóm và có một lá để nút gốc, Trước khi thả một người dùng xác định chức năng, như cơ sở dữ liệu khác với đối tượng nào, STI kiểm tra phụ thuộc. | Chapter 7. Enforcing Data Integrity 1 2 6 7 1 1 3 3 2000-11-12 2000-11-12 2000-11-12 2000-11-12 23 55 00 23 55 00 23 55 00 23 55 00 Cascading Updates To define a FOREIGN KEY constraint as a cascaded UPDATE action you must use the ON UPDATE CASCADE in the REFERENCES clause of the FOREIGN KEY definition on the CREATE TABLE or ALTER TABLE statements. Listing is based in the same example as in Listing . You create the Customers table and the Orders table. You define a FOREIGN KEY constraint between these two tables with the ON UPDATE CASCADE option. You want to change the ID of customer 3 to 30. Customer 3 has two related rows in the Orders table. The UPDATE operation changes the CustomerID from 3 to 30 in both tables automatically. Caution It is not recommended to change PRIMARY KEY values. This can produce identity integrity problems in your applications. Listing Cascade Changes on Primary Keys to Related Foreign Keys with FOREIGN KEY Constraints Defined As ON UPDATE CASCADE EXAMPLE -- Create Customers and Orders tables CREATE TABLE Customers CustomerID int PRIMARY KEY CustomerName varchar 20 NOT NULL CREATE TABLE Orders OrderID int IDENTITY 1 1 PRIMARY KEY CustomerID int NOT NULL OrderDate smalldatetime NOT NULL DEFAULT CURRENT_TIMESTAMP GO -- Create the FOREIGN KEY constraint -- with CASCADE ALTER TABLE Orders ADD CONSTRAINT FK_Orders FOREIGN KEY CustomerID REFERENCES Customers CustomerID ON DELETE CASCADE -- This is optional ON UPDATE CASCADE 269 Microsoft SQL Server 2000 Programming by Example GO -- Insert some Customers INSERT Customers VALUES 1 MyComp corp. INSERT Customers VALUES 2 ACME Inc. INSERT Customers VALUES 3 NewDotCompany Ltd. -- Insert some Orders -- with the default Date INSERT VALUES Orders 1 CustomerID INSERT VALUES Orders 1 CustomerID INSERT VALUES Orders 2 CustomerID INSERT VALUES Orders 2 CustomerID INSERT VALUES Orders 2 CustomerID INSERT VALUES Orders 3 CustomerID INSERT VALUES Orders 3 CustomerID -- Show the data PRINT CHAR 10