如何通过编程方式获取SQL Server中的本地发布列表?
获取SQL Server本地发布列表的编程方法
下面是几种直接获取SSMS中「Replication」文件夹里本地发布列表的实用方法,无需手动操作界面:
1. 查询系统视图
单发布数据库精准查询
如果知道具体的发布数据库,直接在该库中查询syspublications视图,筛选本地发布:
SELECT name AS 发布名称, description AS 发布描述, publisher_db AS 关联数据库, -- 发布类型:0=事务发布,1=快照发布,2=合并发布 publication_type AS 发布类型, -- 状态:0=非活动,1=活动 status AS 发布状态 FROM syspublications WHERE is_local = 1;
全局查询所有本地发布
如果要一次性获取服务器上所有本地发布,可连接到分发数据库(默认名为distribution),查询MSpublications视图:
USE distribution; SELECT publication AS 发布名称, publisher_db AS 关联数据库, description AS 发布描述, publication_type AS 发布类型, active AS 是否激活 FROM MSpublications;
2. 调用系统存储过程
SQL Server内置了专门的存储过程sp_helppublication,用于返回发布的详细信息,默认只展示本地发布:
EXEC sp_helppublication;
如果只想查看特定数据库的发布,可添加参数过滤:
-- 替换为你的目标数据库名称 EXEC sp_helppublication @publisher_db = 'YourDatabaseName';
权限说明
执行上述查询或存储过程,需要具备以下权限之一:
sysadmin固定服务器角色成员- 发布数据库的
db_owner固定数据库角色成员 - 对应发布的发布访问列表(PAL)成员
内容的提问来源于stack exchange,提问作者Dmitriy Ryabin
相关产品推荐
相关产品推荐

