sql - 可以在表中保存和插入 SQL 查询消息吗?

标签 sql sql-server database t-sql

我感觉这是一个非常新手的问题,但很难找到答案,因为与日志记录有关的任何事情都会让我发现 SQL 错误和问题。如果不是这样,那么答案就是查询整个日志以进行筛选。

当我通过 TSQL 将数据插入现有表时。如何保存或引用该特定语句的查询消息?这样我就可以获取查询消息并将结果插入到日志表中,该日志表指定插入了多少条记录,可能需要持续时间等。

我使用的是 SQL Server 2008 R2,这些 SQL 语句是插入数据和更新数据的存储过程。我想确保该过程的每个步骤都被记录并插入到特定的日志表中,其中包含有关该过程步骤的详细信息。

感谢您对这个(我假设的)新手问题的帮助。我仍在学习 MSSQL。

最佳答案

DECLARE @dt DATETIME2(7), @duration INT, @rowcount INT;

SET @dt = SYSDATETIME();

INSERT dbo.foo(bar) VALUES('x');

SELECT @rowcount = @@ROWCOUNT, @duration = DATEDIFF(MICROSECOND, @dt, SYSDATETIME());

INSERT dbo.LoggingTable(duration,row_count) SELECT @duration, @rowcount;

例如,在 2005 年或更低的情况下,您无法获得那么精确的结果

DECLARE @dt DATETIME, ...

SET @dt = GETDATE();

...

... , @duration = DATEDIFF(MILLISECOND, @dt, GETDATE());

关于sql - 可以在表中保存和插入 SQL 查询消息吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21268892/

相关文章:

java - mybatis - 获取对象列表的属性列表

mysql - 在查询中创建临时变量

sql - 复杂聚合查询

SQL Server : select the largest order total from multiple customers with multiple orders, 并且每个订单上有多个项目

c# - SQL 服务器 : Appending VARBINARY slow performance

MongoDB - 多少数据是太多的数据?

php - mysqli 处理具有不同列的多个结果集的准备过程调用

sql - 单个查询中的多个 array_agg() 调用

SQL 交叉表和数据透视表

php - 如何指定 Doctrine 装置的数据库连接?