1

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

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

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

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

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

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

4

2 回答 2

1

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

以下是我的一些想法:

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

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

也许您可以将内容数据库备份和还原到新服务器,然后附加到它。

祝你好运

于 2009-02-27T17:18:40.110 回答
0

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

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

There can never be two fields with the same internal name. We have had issue when fields have been defined on the site using the /_layouts/settings.aspx and also at the list level. As far as I can tell, when a site restores, it tries to add any fields from the list or subsite level into the base site (alert: opinionin formed only by looking at log errors and trial and error rather than actual facts) and this is where it seems to fail. Making sure that all the fields are defined in a consistent way using the Schema xml (easiest to do with a feature defining the content types) may help iron out the issues. I.e. all fields of the same "name" have the same guid name etc in all sites.

Note: We have also had issue with cross site queries after manually adding fields. The query code has some bugs (I believe it is on the MS stack to be fixed) that mean it relies on fields being defined in a certain order on the underlying tables.

于 2009-03-02T01:35:56.077 回答