Jam*_*ins 2 sql-server transactional-replication sql-server-2017
我刚刚开始使用所有很酷的复制工具来以编程方式监控复制
早期发现之一是sp_replmonitorhelpsubscription
当我运行它时
sp_replmonitorhelpsubscription
Run Code Online (Sandbox Code Playgroud)
我得到
消息 20587,级别 16,状态 1,过程 sp_replmonitorhelpsubscription,第 77 行 [批处理开始第 16 行]
存储过程“sp_replmonitorhelpsubscription”的“@publication_type”值无效。
根据 MS 文档,它应该是有效的,默认值为空
NULL(默认)
如果我用参数运行它,它工作正常。
sp_replmonitorhelpsubscription @publication_type = '0'
Run Code Online (Sandbox Code Playgroud)
我将它与事务复制一起使用,在单个服务器(报告副本)上我已经尝试过,并且在 SQL 2017 和 2016 上得到了相同的结果。我正在针对分发数据库运行它
不确定我是否在做一些愚蠢的事情,如果 MS 文档有误,或者什么。
为什么 sp_replmonitorhelpsubscription 在没有参数的情况下不起作用?
检查代码发现:
-- validate @publication_type
--
if (@publisher_db is NULL or @publication is NULL)
and @publication_type is NULL
begin
raiserror(20587, 16, -1, '@publication_type', 'sp_replmonitorhelpsubscription')
return (1)
end
Run Code Online (Sandbox Code Playgroud)
这意味着如果@publication_type
为 NULL 那么它会抛出一个预期的错误。
即使在 2014 年,它也会抛出同样的错误。
另外,你只需要运行
sp_replmonitorhelpsubscription @publication_type = 0
-- 用于交易发布。因为数据类型是INT
.
归档时间: |
|
查看次数: |
219 次 |
最近记录: |