Sharepoint 使用内容数据库更新内部名称
我们当前有一个字段的ID错误。Sharepoint字段的ID和内部名称在域模型上是只读的。我想知道是否有一种方法可以通过使用内容数据库来更新它们 一个可靠的方法是删除字段并重新创建它。但它已经有了数据,有数千页。我想知道是否有一种方法可以只更新ID和内部名称而不删除和重新创建字段Sharepoint 使用内容数据库更新内部名称,sharepoint,sharepoint-2007,wss-3.0,Sharepoint,Sharepoint 2007,Wss 3.0,我们当前有一个字段的ID错误。Sharepoint字段的ID和内部名称在域模型上是只读的。我想知道是否有一种方法可以通过使用内容数据库来更新它们 一个可靠的方法是删除字段并重新创建它。但它已经有了数据,有数千页。我想知道是否有一种方法可以只更新ID和内部名称而不删除和重新创建字段 谢谢即使有用,也不要做。 它是: 危险,因为您可能会跳过依赖项 不支持 使用一些脚本重新创建字段以保存数据更安全。我们遇到了同样的问题。搞乱DB不是我们的选择(也不应该是你们的),但你们可以解决它。不幸的是,需要触
谢谢即使有用,也不要做。
它是:
- 危险,因为您可能会跳过依赖项
- 不支持
使用一些脚本重新创建字段以保存数据更安全。我们遇到了同样的问题。搞乱DB不是我们的选择(也不应该是你们的),但你们可以解决它。不幸的是,需要触摸每个页面才能更新元数据 首先,创建列,就像它应该在列表中一样。然后,可以通过多种方式将数据从旧列复制到新列:
string siteUrl = "http://server/sitecollection/";
string webUrl = "subsite1/subsite2/";
string listName = "Your List Name";
using (SPSite site = new SPSite(siteUrl))
{
using (SPWeb web = site.OpenWeb(webUrl))
{
SPList list = web.Lists[listName];
foreach (SPListItem item in list.Items)
{
item["New_x0020_Column_x0020_Name"] = item["Old_x0020_Column_x0020_Name"];
}
}
}
另外,它强烈建议首先在开发环境中尝试这一点。只需从您的生产环境执行STSADM恢复并测试您的控制台应用程序。然后,验证数据并删除旧列 我不建议修改内容数据库,因为它是:
- 不受支持(如果您这样做,即使您有MS Premier支持,Microsoft也不会在您真正遇到麻烦时帮助您)
- 做起来很复杂。您必须更新许多表,而且您永远无法确定是否确实更新了所有必需的内容