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

时间:2014-01-21 20:54:06

标签: sql sql-server database tsql

我有一种感觉,这是一个非常新手的问题,但很难找到答案,因为与日志记录有关,我指的是SQL错误和问题。如果没有,那么答案是查询整个日志以进行筛选。

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

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

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

1 个答案:

答案 0 :(得分:4)

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());