Tôi cần có danh sách tất cả các bảng được xuất bản để nhân rộng từ cơ sở dữ liệu MS-SQL. Có một thủ tục lưu trữ hệ thống hoặc truy vấn tôi có thể chạy để tạo ra một danh sách như vậy không?Liệt kê tất cả các bảng hiện đang được xuất bản để sao chép MS-SQL
Trả lời
Có:
SELECT *
FROM sys.tables
WHERE is_replicated = 1
Từ MSDN cho lĩnh vực is_replicated:
1 = Bảng được công bố sử dụng ảnh chụp sao chép hoặc giao dịch sao chép.
Có thể truy vấn cơ sở dữ liệu distribution
để xem bài viết nào (bảng/lượt xem/đối tượng ...) được xuất bản và Ấn phẩm nào xuất bản.
SELECT
P.[publication] AS [Publication Name]
,A.[publisher_db] AS [Database Name]
,A.[article] AS [Article Name]
,A.[source_owner] AS [Schema]
,A.[source_object] AS [Object]
FROM
[distribution].[dbo].[MSarticles] AS A
INNER JOIN [distribution].[dbo].[MSpublications] AS P
ON (A.[publication_id] = P.[publication_id])
ORDER BY
P.[publication], A.[article];
Hoạt động trên SQL Server 2008 – Michael
Rất hữu ích khi truy vấn các thực thể [phân phối]. Và nếu bài viết của bạn là tất cả trong cùng một DB (ít nhất, tất cả những cái bạn muốn xác định), bạn có thể tham gia vào DB của [dbName] .sys.tables/objects/etc. chế độ xem siêu dữ liệu để hiển thị nhiều thông tin hơn về chúng, như "loại đối tượng là gì" (vì bạn có thể có nhiều hơn là chỉ nhân bản bảng), hoặc thậm chí "cột nào là PK". Tôi sẽ cố gắng đăng thêm về điều này khi tôi có cơ hội. – NateJ
- 1. Psql liệt kê tất cả các bảng
- 2. Applescript - liệt kê tất cả các ứng dụng đang chạy
- 3. Liệt kê tất cả các chỉ mục
- 4. Liệt kê tất cả các xử lý tệp đang mở?
- 5. Truy vấn SQL: liệt kê tất cả các mục trong một bảng không xuất hiện trong một bảng khác
- 6. Liệt kê tất cả các bảng trong postgresql information_schema
- 7. Liệt kê tất cả virtualenv
- 8. Liệt kê tất cả các kho SVN
- 9. Liệt kê tất cả các gói con của gói
- 10. Kịch bản T-SQL để sao chép tất cả các ràng buộc bảng
- 11. Làm thế nào để lập trình liệt kê tất cả các thuộc tính được xác định?
- 12. Làm cách nào để liệt kê tất cả các hoạt động WCF đang thực thi?
- 13. Tôi làm cách nào để liệt kê tất cả các tiến trình đang chạy trong Windows?
- 14. AppleScript - Liệt kê tất cả các phông chữ
- 15. Làm cách nào để liệt kê tất cả các chuỗi được quản lý bằng WinDBG?
- 16. Grep Regex: Liệt kê tất cả các dòng trừ
- 17. liệt kê tất cả các quy trình trong iOS 5.0.1
- 18. truy vấn postgres để liệt kê tất cả các tên bảng
- 19. Liệt kê tất cả các ổ đĩa vật lý (Windows)
- 20. Liệt kê tất cả các nhóm thư mục hoạt động
- 21. Làm cách nào để liệt kê tất cả các bảng trong lược đồ trong Oracle SQL?
- 22. Liệt kê tất cả các hội đồng .NET có sẵn
- 23. Groovy Liệt kê tất cả các thuộc tính cho lớp
- 24. Liệt kê tất cả các bảng có chứa tên cột đã cho
- 25. Làm cách nào để liệt kê/liệt kê tất cả các ứng dụng đã cài đặt trong Windows XP?
- 26. Liệt kê tất cả các hàm dựng sẵn trong javascript?
- 27. Liệt kê tất cả các trang web trong IIS C#
- 28. Liệt kê tất cả các tháng sử dụng oracle sql
- 29. Liệt kê tất cả hình ảnh của Google Map Marker
- 30. Liệt kê tất cả các thư mục trong thư mục
Điều này phụ thuộc vào loại bản sao được sử dụng. Đối với ảnh chụp bạn có thể cần kiểm tra is_published = 1. MSDN: https://social.msdn.microsoft.com/Forums/sqlserver/en-US/3333c691-4426-476c-b7c4-f8f55068937a/difference-between-ispublished-and diễn đàn = sqlreplication – Zeeshan
Tôi có thể xác nhận rằng trong SQL server 2014/2016 (tôi không có phiên bản đầu để kiểm tra), để sao chép ảnh chụp nhanh, [is_replicated] không cho biết liệu một bảng được nhân rộng hay không phải. Bạn phải sử dụng [is_published] = 1 để tìm bảng sao chụp nhanh. – jyao