我使用 SYSTABLES 中的 ROWCOUNT 字段从使用 Oledb 的 .NET 应用程序中快速获取我所有表的行数(我不想使用查询来获取它,因为在大表上需要太多时间)。
问题是:从表中删除行后,SYSTABLES 中的 ROWCOUNT 数字没有更新。我测试了一些命令,甚至发现在 SqlTalk 中运行 ROWCOUNT TABLENAME 可以工作并且速度非常快,但是如果我尝试使用 OLEDB 从 .NET 中将其作为查询调用,它什么也没有返回,示例代码:
using (var connection = ConnectionFactory.CreateConnection(NombreBaseModelo))
{
using (OleDbCommand cmd = connection.CreateCommand())
{
foreach (Tabla ot in LstTables)
{
cmd.CommandType = CommandType.Text;
cmd.CommandTimeout = 5000;
cmd.CommandText = "ROWCOUNT " + ot.NAME;
var sRet = cmd.ExecuteScalar();
ot.ROWCOUNT = int.Parse(sRet);
}
}
}
有没有办法告诉 SqlBase 更新 systables 中每个表的 Rowcount?
或者作为替代方案,有什么方法可以使这段代码工作?
谢谢!