是否可以在SQL Server Profiler中显示"行计数"列?
例如,有CPU和持续时间列,但是它可以显示查询返回的行数吗?
这是我的示例代码
drop function rowcount_test
go
CREATE FUNCTION dbo.rowcount_test () RETURNS INT AS
BEGIN
DECLARE @v INT
SELECT @v = 1
return @@ROWCOUNT
END
GO
grant exec on dbo.rowcount_test to public
go
SELECT dbo.rowcount_test()
Run Code Online (Sandbox Code Playgroud)
由 mssql 2017(及更早版本)执行时,它给出 1
由 mssql 2019 执行时它给出 0
它在 mssql 2019(标准版)执行时给出 1,并将 db 置于 2017 兼容模式
以前从来没出过问题……是MSSQL 2019中的某种影响代码的设置还是某种bug?
t-sql sql-server rowcount user-defined-functions sql-server-2019
下面是我的SQL脚本的简化版本.print @RowNum始终显示0,而不是第一个结果集的实际记录号.怎么了?谢谢.
declare @i int, @RowNum int
set @i=0
while @i<2
begin
execute StoredProcedure @i --containing a big select
if @i=0 set @RowNum=@@rowcount
set @i=@i+1
end
print @RowNum
Run Code Online (Sandbox Code Playgroud) 问题说明了一切.对工作样品的任何帮助都非常赞赏.
谢谢.
我正在使用,SET ROWCOUNT因为值来自我的过程中的参数.
SET ROWCOUNT @take
SELECT * FROM Something
SET ROWCOUNT 0
Run Code Online (Sandbox Code Playgroud)
是否可以同时执行另一个过程并获取rowcount设置,或者在存储过程中使用它是否非常安全?
回答后编辑:我认为这是我自己的代码中的一个错误 - 我不知道它是什么但我继续修复它.见下面的答案.
我正在使用MySQL/PHP执行一系列INSERT ... ON DUPLICATE KEY UPDATE语句.我读过的文档表明它的行数将返回:
-1 : an error
0 : update, no changes to row made (i.e. all values duplicated)
1 : row inserted
2 : update performed on row with duplicate key
Run Code Online (Sandbox Code Playgroud)
但是,我只看到0的结果,我应该看到2s(因为我正在观看代码更新各种数据库值.)这是代码:
$stmt = $db->prepare('INSERT INTO sometable (`id`, `name`, `email`) VALUES (?, ?, ?) ON DUPLICATE KEY UPDATE `name` = ?, `email` = ? ;');
$stmt->execute( array ( $id, $name, $email, $name, $email ) );
$rc = $stmt->rowCount();
echo $rc;
Run Code Online (Sandbox Code Playgroud)
$ rc总是为0更新(即使值已明确更改)或1(对于成功插入,如预期的那样).
我错过了什么?:)
我正在尝试模型/视图编程中的一个示例。
http://doc.qt.io/qt-5/model-view-programming.html
为了演示如何使用模型索引从模型中检索数据,我们设置了一个没有视图的 QFileSystemModel,并在小部件中显示文件和目录的名称。尽管这没有显示使用模型的正常方式,但它演示了模型在处理模型索引时使用的约定。
我们通过以下方式构建文件系统模型:
QFileSystemModel *model = new QFileSystemModel;
QModelIndex parentIndex = model->index(QDir::currentPath());
int numRows = model->rowCount(parentIndex);
Run Code Online (Sandbox Code Playgroud)
在本例中,我们设置一个默认的 QFileSystemModel,使用该模型提供的 index() 的特定实现获取父索引,并使用 rowCount() 函数计算模型中的行数。
这是我的代码:
QFileSystemModel* model = new QFileSystemModel;
QModelIndex parentIndex = model->index(QDir::currentPath());
qDebug() << QDir::currentPath();
// "/media/Local Data/Files/Programming/C++/build-DemostrateQModelIndex-Desktop_Qt_5_5_1_GCC_64bit-Debug"
qDebug() << "RowCount is " << model->rowCount(parentIndex);
Run Code Online (Sandbox Code Playgroud)
但 RowCount 始终为 0。
在“build-DemostrateQModelIndex-Desktop_Qt_5_5_1_GCC_64bit-Debug”文件夹中,里面有文件和文件夹。我预计行数应该是里面的项目数。
我还尝试初始化 QFileSystemModel;
QFileSystemModel* model = new QFileSystemModel;
model->setRootPath(QDir::rootPath());
QModelIndex parentIndex = model->index(QDir::currentPath());
qDebug() << "RowCount is " << model->rowCount(parentIndex);
Run Code Online (Sandbox Code Playgroud)
RowCount 仍然为 0。
更新 1:应用 Johannes Schaub 的建议。我QEventLoop …
我是Azure表存储的新手.我想在表格中获得总行数.
目前Iam正在这样做: -
public List<T> ReadAll(string partitionKey)
{
List<T> entities = new List<T>();
TableQuery<T> query = new TableQuery<T>().Where(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, partitionKey.ToLower()));
entities = Table.ExecuteQuery(query).ToList();
return entities;
}
Run Code Online (Sandbox Code Playgroud)
这当前读取所有表条目.当涉及到较少的记录时,这可以正常工作.但我担心记录会增加,这种方法会很乏味.
有没有其他优雅的方式来做到这一点?
我有一个文件夹,其中包含每天更换的多个 Excel 文件。我需要一个总行数,它为我提供文件夹中每个单独 Excel 文件的行数总和(即,如果有 3 个文件,每个文件有 10 条记录,我需要的结果数为 30)。然后我需要每天运行这个程序包以将单个记录添加到日志表中,该记录表将为我提供文件夹中的每日记录数。我一直在尝试 Foreach 循环容器和 ADO 枚举器,但似乎无法实现解决方案。
我用来flask-sqlalchemy更新mssql记录,但它返回-1。
库版本:
代码第 1 部分:
ret = db.session.query(XXX).filter_by(id=1).update({"xxx": "xxxx"})
print("ret", ret)
db.session.commit()
Run Code Online (Sandbox Code Playgroud)
为ret-1,但记录已被修改。
代码第 2 部分:
obj = XXX.query.filter_by(id=q).first()
obj .xx = "xxx"
db.session.commit()
Run Code Online (Sandbox Code Playgroud)
引发错误:
sqlalchemy.orm.exc.StaleDataError: UPDATE statement on table 'XXX' expected to update 1 row(s); -1 were matched.
Run Code Online (Sandbox Code Playgroud)
而且修改没有成功。
rowcount ×10
sql-server ×5
t-sql ×2
azure ×1
c++ ×1
mysql ×1
pdo ×1
php ×1
postgresql ×1
qt ×1
sql ×1
sqlalchemy ×1
ssis ×1