2011-06-17 32 views

Trả lời

8

Nếu khóa ngoại được đặt thành thay đổi tầng thì giá trị sẽ tự động thay đổi.

+1

Tôi nhận được: Không thể cập nhật cột nhận dạng 'Id'.query là UPDATE [TableA] SET Id = 8 WHERE Id = 9 – user278618

+1

Hãy xem http://stackoverflow.com/questions/751522/how-to -change-identity-column-values-programmatically – Ray

+0

@ user278618: bạn ** không thể ** cập nhật giá trị 'IDENTITY' hiện có - không có cách nào để thực hiện việc này. –

3

Đảm bảo rằng các mối quan hệ khóa ngoại của bạn đã được chỉ định CẬP NHẬT CASCADE được chỉ định và khóa ngoại sẽ tự động cập nhật để khớp với khóa chính.

Từ Sách Online: http://msdn.microsoft.com/en-us/library/ms174123%28v=SQL.90%29.aspx

ON UPDATE CASCADE {| KHÔNG HÀNH ĐỘNG | SET DEFAULT | SET NULL}

Chỉ định hành động nào xảy ra với hàng trong bảng được tạo khi hàng đó có mối quan hệ tham chiếu và hàng được tham chiếu được cập nhật trong bảng cha. Các mặc định là KHÔNG HÀNH ĐỘNG. Xem phần "Nhận xét" sau trong chủ đề này để biết thêm thông tin.

0

Cập nhật khóa chính không cập nhật khóa ngoại có liên quan, nó chỉ xóa các bản ghi liên quan trên các bảng khác khi Sql Server xử lý cập nhật khi xóa và chèn. Đây là Sql Server 2000, không chắc chắn các phiên bản sau. Sử dụng "trên tầng cập nhật trên tầng xóa", các hiệu ứng tầng của "xóa và chèn: aka cập nhật", xóa các hồ sơ liên quan trên các bảng khác.

Các vấn đề liên quan