【问题标题】:Is this a bug with SharePoint Column/Field internal names in MOSS 2007这是 MOSS 2007 中 SharePoint 列/字段内部名称的错误吗
【发布时间】:2009-02-27 16:43:55
【问题描述】:

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

它允许您添加一个新列,例如“团队”。当您添加它时,它会将内部名称存储为“团队”,这是有道理的。然后,企业决定将“团队”称为“工作流”,因此您可以根据要求对其进行重命名。在根网站集中,此列的内部名称仍为“团队”。

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

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

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

任何人都可以提出解决此问题的方法吗?

【问题讨论】:

    标签: sharepoint moss field


    【解决方案1】:

    这听起来像是一个错误,我不知道有什么办法可以绕过它。我不相信无论如何要更改列的内部名称。

    以下是我的一些想法:

    您可能想研究一个 3rd 方模仿工具,例如 metalogix,它最终可能比花时间为一次性迁移项目编写自定义代码更容易且更具成本效益。

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

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

    祝你好运

    【讨论】:

    • 谢谢。您会看到 8 月累积更新 support.microsoft.com/kb/956057(第 3 条)中提到了针对此问题的修复,但我应用了此更新,但仍然遇到此问题。
    • 如果您有胆量,您可以尝试浏览数据库,看看是否可以在那里更改名称。这种类型的东西将完全不受支持,并且很可能会大费周章-但是,嘿,它可能会起作用
    • 你说得对,Jason,我记得我不小心更改了“Item”内容类型的名称时这样做了。
    【解决方案2】:

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

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

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

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

    【讨论】:

    • 干杯纳特。我一直在查看 SharePoint Manager,这就是我发现重复字段的方式。虽然内部名称似乎是灰色的,但我可以看到那里有一些 xml,我可以更改那里的值还是内部名称冲突?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-18
    • 2012-01-29
    • 1970-01-01
    • 2014-07-07
    • 1970-01-01
    • 2010-10-30
    • 1970-01-01
    相关资源
    最近更新 更多