合并复制无法复制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。
具有预快照脚本的第一个选项可通过“发布属性” - >“快照”访问。我假设您需要在那里提供一个脚本,该脚本将检查订阅者中是否存在给定的用户定义类型然后创建它,否则跳过:
第二个建议的解决方案可通过单个文章属性访问:
看,如果以上内容可以帮助您解决问题。当然,还有一种解决方案可以在订户处手动创建缺少的UDT。
以上是关于合并复制无法复制UD类型的主要内容,如果未能解决你的问题,请参考以下文章
Excel2021 无法复制筛选后的合并单元格数据提示无法操