tailieunhanh - Lập Trình Cơ Sở Dữ Liệu Với CSharp- P7

Nếu bạn cố thử chạy phát biểu INSERT này, bạn sẽ nhận một thông báo lỗi từ co8 sở dữ liệu : Violation of PRIMARY KEY constraint 'PK_Customers'. Cannot insert duplicate key in object 'Customers'. The statement has been terminated. Hãy xem nhũng gì sẽ sảy ra khi bạn cố sửa đổi một khoá chính ở bảng cha có một giá trị đã được tham chiếu từ một khoá phụ trong bảng con. | New York NULL 12345 USA 800 -555-1212 NULL Nếu bạn cố thử chạy phát biểu INSERT này bạn sẽ nhận một thông báo lỗi từ co8 sở dữ liệu Violation of PRIMARY KEY constraint PK_Customers . Cannot insert duplicate key in object Customers . The statement has been terminated. Hãy xem nhũng gì sẽ sảy ra khi bạn cố sửa đổi một khoá chính ở bảng cha có một giá trị đã được tham chiếu từ một khoá phụ trong bảng con. Phát biểu UPDATE sau cố sửa đổi CustomerlD từ ALFKI thành ALFKZ trong bảng cha Customers hàng này được tham chiếu bởi những hàng trong bảng con Orders UPDATE Customers SET CustomerlD ALFKZ WHERE CustomerID ALFKI Nếu bạn cố chạy thử phát biểu UPDATE này bạn sẽ nhận thông báo lỗi như sau Phát biểu UPDATE này xung đột với cột tham chiếu ràng buộc FK_Orders_Customers . Sự xung đột này sảy ra trong cơ sở dữ liệu Northwind bàng Orders cột CustomerlD . Phát biểu này đã bị giới hạn. Phát biểu UPDATE này bị hỏng vì hàng chứa giá trị khoá chính là ALFKI được tham chiếu bởi những han2g trong bàng Orders. Thông báo cho bạn biết giá trị mới cho cột CustomerID đã vi phạm sự ràng buộc khoá phụ trên cột CustomerlD của bàng Orders. Ràng buộc nà có tên FK_Orders_Customers. Bạn cũng không thể xoá một hàng từ một bảng cha được tham chiếu bởi một hàng trong bảng con. Thí dụ phát biểu SELECT dưới đây cố thử xoá hàng từ bảng Customers có cột CustomerlD bằng ALFKI hàng này được tham chiếu bởi những hàng trong bảng Orders DELETE FROM Customers WHERE CustomerID ALFKI Nếu bạn cố chạy thử phát biểu DELETE này bạn sẽ nhận được thông báo lỗi tương tự như trên. GOM NHÓM NHỮNG CÂU LÊNH SQL Theo mặc định khi bạn chạy một phát biểu INERT UPDATE hay DELETE SQL Server luôn ghi lại những kết quả của phát biểu vào cơ sở dữ liệu . đây có thể không phải luôn luôn là kết quả mong muốn của bạn. thí dụ trong trường hợp một giao dịch ngân hàng bạn có thể muốn rút tiền từ một tài khoản và giửi sang một tài khoản khác. Nếu bạn có hai phát biểu UPDATE riêng biệt thực hiện việc rút và gởi và bạn muốn thực hiện .