这是MOSS 2007中SharePoint列/字段内部名称的错误

时间:2009-02-27 16:43:55

标签: sharepoint moss field

SharePoint MOSS 2007中的列似乎存在错误。

它允许您添加一个新列,称为“团队”。当你添加它时,它将内部名称存储为'Team',这是有意义的。然后,企业决定将“团队”称为“工作流”,因此您可以根据要求重命名。内部名称仍为根网站集中此列的“团队”。

然后,用户将新的站点列添加到名为“Team”的子站点,并在各种内容类型中使用它。您现在有两个具有相同内部名称“Team”的列或字段。

我现在被要求将整个网站集导出并导入到另一台服务器。当我这样做时,stsadm.exe告诉我它找到了一个重复的列并输出错误。

我无法删除任何列,因为它们在各种内容类型中都在使用。

有人可以建议一种方法来解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

这听起来像个臭虫,我不知道它在顶部的任何方式。我不相信无论如何都要更改列的内部名称。

以下是我的一些想法:

您可能希望查看第三方管理工具,例如metalogix,它可能最终比花时间为一次性迁移项目编写自定义代码更容易且更具成本效益。

如果您可以将网站分解到新服务器上应该解决问题的不同网站集上。

也许您可以backup and restore the content database到新服务器,然后附加到它。

祝你好运

答案 1 :(得分:0)

诀窍是只使用xml架构而不是使用前端添加列。 通常我会使用包含所有字段定义和内容类型的解决方案/功能来执行此操作。

由于您已经添加了内容类型,因此您可能需要使用SharePoint manager之类的工具来查看架构xml并引入一个新架构。这样可以更好地控制任何字段的确切定义。

永远不会有两个具有相同内部名称的字段。我们在使用/_layouts/settings.aspx以及列表级别在网站上定义字段时遇到了问题。据我所知,当一个站点恢复时,它会尝试将列表或子站点级别中的任何字段添加到基站中(警告:只能通过查看日志错误和反复试验而不是实际事实来形成)它似乎失败了。确保使用Schema xml以一致的方式定义所有字段(最简单的方法是定义内容类型)可以帮助解决问题。 即所有网站中相同“名称”的所有字段都具有相同的guid名称等。

注意: 手动添加字段后,我们也遇到了跨站点查询的问题。查询代码有一些错误(我相信它在MS堆栈上是固定的),这意味着它依赖于在基础表上按特定顺序定义的字段。