如何在T-SQL中列出未发布的文章

时间:2013-11-18 08:02:36

标签: sql replication

如何列出所有表格商店程序哪些在发布数据库中使用T-SQL查询发布?

RED中的表格就是示例......

This is an example which tables and store procedures have to be listed

2 个答案:

答案 0 :(得分:0)

我没有设置复制,因此我无法构建或检查查询,但我相当确定您要查找的信息可以在syspublications和{{ 3}}表。

作为额外帮助,请尝试选中其中一个框。在屏幕截图的左上角,有一个名为Script的按钮,当前已被禁用。进行更改(如选中或取消选中复选框)应该可以让您查看哪些表格中的复选框设置实际发生了变化。

最后,您可以启动Profiler,然后打开屏幕。如果您选中标记为Show only checked articles in the list的复选框,则会将主窗口的选择限制为仅选中的文章。然后,Profiler可以让您看到执行了哪些脚本来获取这些结果。

答案 1 :(得分:0)

这将获得未在发布数据库中发布的所有表,视图和存储过程的列表。

对于快照和交易:

SELECT
    name 
FROM sys.objects WITH (NOLOCK) 
WHERE (([type] = 'U') OR ([type] = 'V') OR ([type] = 'P')) AND 
    is_ms_shipped <> 1 AND
    name NOT IN (SELECT DISTINCT object_name(OBJID) FROM sysarticles)

对于合并:

SELECT
    name 
FROM sys.objects WITH (NOLOCK) 
WHERE ((type = 'U') OR (type = 'V') OR (type = 'P')) AND 
    is_ms_shipped <> 1 AND 
    name NOT IN (SELECT DISTINCT object_name(OBJID) FROM sysmergearticles)