合并复制无法复制UD类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了合并复制无法复制UD类型相关的知识,希望对你有一定的参考价值。

我有一个包含一些用户定义类型的数据库。据我了解,Merge Replication将自动包含已使用的UD类型。其中一种类型是在函数中使用的表变量。在发布者网站上工作正常,但在订阅者网站上它无法同步。为什么会这样?

  • 我试图复制使用该类型的一个函数,并成功。之后复制工作正常。
  • 当我尝试将相同的配置发送到另一个系统时,它在开始时失败,就像之前系统上的原始尝试一样,但现在即使我尝试复制一个过程,我仍然得到相同的错误。

错误如下:

架构脚本'some name.sch'无法传播给订户。

当我追踪错误时:

找不到数据类型dbo.someName

答案

我想Hilary Cotter在这个论坛上给出的答案可以帮到你:

Transactional Replication and User Defined Data Types

我会在这里引用它以防链接被破坏:

您可以选择通过预快照脚本复制用户定义的数据类型。

您还可以选择将用户定义的数据类型复制为基本数据类型。这是文章属性对话框的转换数据类型部分。默认情况下,它为false,您可能希望将其设置为true以将它们转换为基本数据类型。例如,如果您的用户数据类型为varchar(11)(即EXEC sp_addtype ssn,'VARCHAR(11)','NOT NULL'),则它将被复制为varchar(11)而不是ssn。

具有预快照脚本的第一个选项可通过“发布属性” - >“快照”访问。我假设您需要在那里提供一个脚本,该脚本将检查订阅者中是否存在给定的用户定义类型然后创建它,否则跳过:

enter image description here

第二个建议的解决方案可通过单个文章属性访问:

enter image description here

看,如果以上内容可以帮助您解决问题。当然,还有一种解决方案可以在订户处手动创建缺少的UDT。

以上是关于合并复制无法复制UD类型的主要内容,如果未能解决你的问题,请参考以下文章

Excel2021 无法复制筛选后的合并单元格数据提示无法操

无法使用 VBA 粘贴到合并的单元格中

无法转换类型错误,但两种类型都相同? [复制]

使用 LocalDB 进行事务复制

错误:WatchActivity 无法解析为一种类型,为啥我会得到这个? [复制]

我收到未捕获的类型错误:无法将属性“onclick”设置为 null? [复制]