1

我想知道 SN 在其数据库中为特定容器(例如文件夹)保存版本控制模式的位置!

我在 [Versions] 表中找到了 [Status] 列,但我注意到它的值仍然为 1,即使我将模式从主要更改为无,反之亦然。

我还通过 SQL Profiler 对其进行了跟踪,并找到了以下存储过程。触发:proc_Version_Update。

请详细说明。谢谢!

4

1 回答 1

1

如果您需要 db 解决方案(不推荐,请尽可能使用 REST 或 C# api),您可以查看内置的数据库视图。他们将为您节省一些连接:-)。

容器上的版本控制模式是一个常规字段,称为Inheritable 版本控制模式。请注意,该值决定了该容器中子元素的版本控制行为,而不是容器自身的版本控制模式。如果您需要在单个内容项(如文档)上设置值,请查找VersioningMode属性。

您要查找的值与任何其他简单属性一样存储在FlatProperties表中,但使用下面的视图更容易查询。

查找列

请执行以下脚本以在 FlatProperties 表中找到正确的列:

SELECT [Id], [Page], [Column]
FROM [dbo].[PropertyInfoView]
where Name = 'InheritableVersioningMode'

最后一列将包含您需要的列名(例如int_3)。还请注意Page值:有时系统中的字段太多,以至于一个版本在 FlatProperties 表中占据了不止一行。

寻找属性值

使用您要查找的容器路径执行第二个脚本(请将最后选择的列更改为您在数据库中找到的列):

SELECT [NodeId], [Name], [Path], [VersionId], [int_3]
FROM [dbo].[SysSearchWithFlatsView]
where Path = @yourPath

最后一列值将是您要查找的枚举值(一个数字),是以下之一:

Inherited = 0
None = 1
MajorOnly = 2
MajorAndMinor = 3
于 2017-07-19T20:02:02.187 回答