SQL SERVER 循环查询语句,并返回每条的查询时间
时间: 2024-12-23 14:15:09 浏览: 8
SQL Server 的循环查询语句通常使用 CURSOR 或 WHILE 循环结构结合动态 SQL 来实现。当你需要重复执行相同或类似的操作并且结果集不确定时,这很有用。下面是一个基本的例子:
```sql
DECLARE @start_time datetime;
DECLARE @end_time datetime;
DECLARE @current_row INT = 0;
SET @start_time = GETDATE();
WHILE (@current_row < your_total_records)
BEGIN
-- 这里是你想要执行的查询,比如 SELECT * FROM your_table WHERE id = @current_row
DECLARE @query_result TABLE (column1 datatype1, column2 datatype2);
INSERT INTO @query_result
EXEC (N'SELECT column1, column2 FROM your_table WHERE id = ' + CAST(@current_row AS NVARCHAR(10)));
-- 打印当前行的查询时间和结果
SET @end_time = GETDATE();
PRINT 'Row ' + CAST(@current_row AS VARCHAR) + ', Query Time: ' + DATEDIFF(ms, @start_time, @end_time) + ' ms';
SET @current_row += 1;
END
-- 别忘了关闭循环和处理最后的结果
```
在这个例子中,你需要替换 `your_total_records`、`your_table` 和列名等为你实际的数据表信息。每次循环会执行一次查询并记录其时间,直到达到指定的总行数。
阅读全文