【问题标题】:Replication - User defined table type not propagating to subscriber复制 - 用户定义的表类型未传播到订阅者
【发布时间】:2011-05-29 19:48:22
【问题描述】:

我创建了一个名为 tvp_Shipment 的用户定义表类型,其中包含两列(id 和 name)。生成了一个快照,并且用户定义的表类型被正确地传播到所有订阅者。

我在存储过程中使用了这个 tvp,一切正常。

然后我想在这个表值参数中再添加一列 created_date。我删除了存储过程(也从复制中),并且我删除并重新创建了具有 3 列的用户定义表类型,然后重新创建了存储过程并启用用于发布

当我生成新快照时,用户定义表类型的更改不会传播到订阅者。新添加的列未添加到订阅中。

错误消息:

The schema script 'usp_InsertAirSa95c0e23_218.sch' could not be propagated to the subscriber. (Source: MSSQL_REPL, Error number: MSSQL_REPL-2147201001)
Get help: http://help/MSSQL_REPL-2147201001
Invalid column name 'created_date'. (Source: MSSQLServer, Error number: 207)
Get help: http://help/207

【问题讨论】:

    标签: sql sql-server-2008 database-replication merge-replication database-administration


    【解决方案1】:

    在发布时,replicate_ddl 选项是否设置为 true?另外,相关文章的 pre_cmd 值是多少?如果这些都没有为您指明正确的方向,请查看它说失败的文件。它应该是一个人类可读的 T-SQL 文件,位于快照文件夹中的分发服务器。如果错误不明显,您可以尝试在订阅服务器上运行它,看看它会给您带来什么。我的猜测是它没有复制列更改,但是您在其上放置了一个引用该列的索引。但这只是猜测。

    【讨论】:

    • 实际上它不会复制我的用户定义的表类型。 replicate_ddl 设置为 true。用户表复制了添加的列,但用户定义的表没有。
    猜你喜欢
    • 2018-07-18
    • 1970-01-01
    • 2011-05-19
    • 1970-01-01
    • 2016-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多