2010-05-26 13 views
7

Khi tôi chạy tập lệnh này để tìm kiếm văn bản cụ thể trong sys.columns và tôi nhận được rất nhiều "dbo.syncobj_0x3934443438443332" giống như các hàng.Syncobj là gì trong SQL Server

SELECT c.name, s.name + '.' + o.name 
FROM sys.columns c 
INNER JOIN sys.objects o ON c.object_id=o.object_id 
INNER JOIN sys.schemas s ON o.schema_id=s.schema_id 
WHERE c.name LIKE '%text%' 

Nếu tôi hiểu đúng, chúng là đối tượng nhân bản. Có phải vậy không? Tôi có thể ném chúng ra khỏi truy vấn của mình giống như o.name NOT LIKE '%syncobj%' hoặc có cách khác không?

Cảm ơn bạn.

Trả lời

11

Tôi đã tìm được giải pháp. Không biết, nếu đó là hay nhất hay không.

SELECT c.name, s.name + '.' + o.name 
FROM sys.columns c 
    INNER JOIN sys.objects o ON c.object_id=o.object_id 
    INNER JOIN sys.schemas s ON o.schema_id=s.schema_id 
WHERE c.name LIKE '%text%' AND o.type = 'U' 

Kết quả là tốt ngay bây giờ. Như tôi đã nói syncobj là các đối tượng nhân rộng và chúng không có ý nghĩa đối với chúng tôi. Chúng chỉ được sử dụng cho mục đích nhân rộng.

http://www.developmentnow.com/g/114_2007_12_0_0_443938/syncobj-views.htm

EDIT:

Quên để thêm, của syncobj được lưu trữ trong DB như xem, vì vậy nếu bạn cần danh sách các quan điểm, có thể bạn sẽ cần phải bỏ qua chúng như tôi đã làm trong tôi câu hỏi.

Trong khi kiểm tra sự khác biệt giữa syncobj và quan điểm của tôi, sự khác biệt duy nhất là is_ms_shipped cột. Đối với syncobj nó là 1, cho những người khác 0. Nó có nghĩa là xem syncobj được tạo ra bởi hệ thống.

P.S. Tôi sẽ đợi một thời gian và nếu không ai trả lời, tôi sẽ chấp nhận tôi.

+4

+1 để đăng câu trả lời. Hãy tiếp tục và chấp nhận nó. –

1

Khi bạn tạo bản sao không bao gồm tất cả các trường hoặc các thay đổi siêu dữ liệu khác từ bảng gốc. Nếu bạn tạo một kịch bản lệnh từ một ấn phẩm, nó sẽ cho bạn thấy nó được tạo ra như thế nào (xem bên dưới). Khung nhìn cung cấp một đối tượng để tạo ra các trích xuất bcp trong các ảnh chụp nhanh ban đầu.

Dưới đây là một ví dụ

- Thêm các @publication đồng bộ hóa bài viết đối tượng exec sp_articleview = N'publication_data '@article = N'tablename', @view_name = N'syncobj_0x4239373642443436' , @filter_clause = N '', @force_invalidate_snapshot = 1, @force_reinit_subscription = 1 GO

PS Gần đây tôi đã có một vấn đề khi tôi thả nhân rộng, nó không thể thả những điều này và sau đó bạn phải tự thả các khung nhìn hệ thống để tái sử dụng một kịch bản sao chép. Đưa ra thông báo lỗi

Msg 2714, Level 16, State 3: Đã có đối tượng có tên 'syncobj_0x3437324238353830' trong cơ sở dữ liệu.

Điều này khiến cho bcp thất bại trong khi chụp nhanh.