清除指定表的逻辑删除数据。
命名空间: System.Data.SqlServerCe
程序集: System.Data.SqlServerCe(在 System.Data.SqlServerCe.dll 中)
语法
声明
Public Sub PurgeTombstoneTableData ( _
tableName As String, _
pType As PurgeType, _
retentionValue As Long _
)
用法
Dim instance As SqlCeChangeTracking
Dim tableName As String
Dim pType As PurgeType
Dim retentionValue As Long
instance.PurgeTombstoneTableData(tableName, _
pType, retentionValue)
public void PurgeTombstoneTableData(
string tableName,
PurgeType pType,
long retentionValue
)
public:
void PurgeTombstoneTableData(
String^ tableName,
PurgeType pType,
long long retentionValue
)
member PurgeTombstoneTableData :
tableName:string *
pType:PurgeType *
retentionValue:int64 -> unit
public function PurgeTombstoneTableData(
tableName : String,
pType : PurgeType,
retentionValue : long
)
参数
- tableName
类型:System. . :: . .String
删除逻辑删除数据所针对的表的名称。
- pType
类型:System.Data.SqlServerCe. . :: . .PurgeType
PurgeType 的值之一,它指定清除是基于时间的还是基于修改逻辑删除数据的最后一个事务的提交序列号 (CSN)。
- retentionValue
类型:System. . :: . .Int64
一个指定应保留的逻辑删除行最大限制的数字。在使用基于时间的清除时,此参数指定从当前日期开始保留逻辑删除数据的天数。在使用基于 CSN 的清除时,此参数指定应保留其逻辑删除数据的最后一个事务的 CSN。
异常
异常 | 条件 |
---|---|
ArgumentOutOfRangeException | retentionValue 小于零。 - 或 - purgeType 不是有效的 PurgeType 值。 |
注释
PurgeTombstoneTableData 方法从逻辑删除表 (__sysOCSDeletedRows) 中删除(清除)行。当从跟踪表中删除行时,跟踪基础结构将删除的行移到逻辑删除表中。随着时间推移,此表可能增长得非常大,因为跟踪基础结构使用逻辑删除表来保留系统中所有跟踪表的已删除行。可以使用 PurgeTombstoneTableData 方法,通过定期从逻辑删除表中清除行来限制该表的大小。
您可以使用 pType 参数指定以下两种清除类型之一:
基于时间的清除。在使用基于时间的清除时,retentionValue 参数指定从当前日期开始在逻辑删除表中保留行的天数。指定表中在保留日期或之后删除的任何行都将保留在逻辑删除表中;在保留日期之前删除的任何行都将从逻辑删除表中删除。
基于 CSN 的清除。这种类型的清除也称为基于事务的清除。在使用基于 CSN 的清除时,retentionValue 参数指定在逻辑删除表中为其保留行的最后一个事务的事务提交序列号 (CSN)。指定表中由其 CSN 大于或等于指定 CSN 的事务删除的任何行将保留在逻辑删除表中;而由其 CSN 小于指定 CSN 的事务删除的行将从逻辑删除表中删除。可以通过调用 GetLastCommittedCsn 方法来获取数据源的当前 CSN(分配给要提交的最后一个事务的 CSN)。
备注
CSN 是一个单调递增计数器,由数据库在每个事务提交时分配给相应的事务(在事务中登记该数据库)。CSN 唯一标识每个事务相对于其他事务的提交顺序,这些事务是已提交的事务,且在其中也登记了此数据库。
有关执行基于时间的清除与基于 CSN 的清除之间的差异的详细信息,请参阅有关 PurgeType 枚举的主题。