2009-03-12 25 views
13

Tôi đã sao chép hợp nhất được thiết lập giữa hai cơ sở dữ liệu và đang sử dụng phạm vi nhận dạng trên cả hai.Đặt Identity_insert trên - Hợp nhất Nhân rộng

Tôi muốn thêm một hàng cụ thể vào bảng đã hợp nhất (đặt giá trị nhận dạng cho một thứ ngoài phạm vi nhận dạng) trên nhà xuất bản. Khi tôi thử điều này, tôi nhận được lỗi sau.

Chèn không thành công. Nó xung đột với kiểm tra phạm vi nhận dạng ràng buộc trong cơ sở dữ liệu 'xxx', bảng được sao chép 'dbo.yyy', cột 'yyy_id'. Nếu cột nhận dạng được tự động quản lý bởi sao chép, hãy cập nhật phạm vi như sau: cho Nhà xuất bản, hãy thực hiện sp_adjustpublisheridentityrange; cho Người đăng ký, hãy chạy Đại lý phân phối hoặc Đại lý hợp nhất.

Có cách nào để buộc giá trị nhận dạng cụ thể vào bảng được sao chép hợp nhất đang sử dụng quản lý phạm vi nhận dạng không?

Trả lời

3

Một cách là đảm bảo rằng mỗi nút trong cấu trúc liên kết sao chép đang sử dụng một phạm vi giá trị nhận dạng khác nhau, sao cho các bản sao không xảy ra.

Ví dụ, nhà xuất bản có thể giao khoảng 1-100, thuê bao A khoảng 101-200, và thuê bao B khoảng 201-300. Nếu một hàng là được chèn tại Nhà xuất bản và giá trị nhận dạng là, ví dụ: 65, giá trị đó được nhân rộng cho mỗi người đăng ký . Khi nhân rộng chèn dữ liệu tại mỗi Người đăng ký, nó không tăng giá trị cột nhận dạng trong bảng Người đăng ký; thay vào đó, giá trị chữ số được chèn vào. Chỉ chèn người dùng, nhưng không nhân rộng chèn tác nhân gây ra nhận dạng giá trị cột được tăng lên.

Ref. Replicating Identity Columns

+0

Cảm ơn Mitch, nhưng trong tình huống tôi đang giải quyết, khách hàng đang tích cực nhập hồ sơ trong cả quán rượu và phụ đang nhận được Id được chỉ định. Có một ID cụ thể mà tôi muốn chèn vào pub (thấp hơn phạm vi hiện tại). nhưng tôi muốn những người đang thêm vào quán rượu để thêm vào trong phạm vi. –

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