sqlserver循环查询结果显示多张表格
时间: 2023-09-03 16:04:37 浏览: 64
在SQL Server中,我们可以使用CURSOR游标实现循环查询并显示多张表格的结果。
首先,我们需要定义一个游标变量,并使用SELECT语句获取需要循环查询的表格数据。例如,我们有三张表格A、B和C,需要循环查询它们的结果。
```sql
DECLARE @cursor CURSOR
DECLARE @tableName NVARCHAR(50)
DECLARE @sql NVARCHAR(MAX)
-- 定义游标
SET @cursor = CURSOR FOR
SELECT name
FROM sys.tables
WHERE name IN ('A', 'B', 'C')
-- 循环查询并显示结果
OPEN @cursor
FETCH NEXT FROM @cursor INTO @tableName
WHILE @@FETCH_STATUS = 0
BEGIN
SET @sql = N'SELECT * FROM ' + @tableName
EXEC sp_executesql @sql
FETCH NEXT FROM @cursor INTO @tableName
END
CLOSE @cursor
DEALLOCATE @cursor
```
上述代码首先定义了一个游标变量@cursor,并使用SELECT语句获取了需要循环查询的表格名称。然后,使用OPEN语句打开游标,FETCH NEXT语句将游标移到第一条记录。接着,使用WHILE循环,判断游标是否还有下一条记录,如果有,则将查询语句动态构建为一个字符串,并使用sp_executesql执行该查询语句。最后,使用FETCH NEXT将游标移到下一条记录,直至循环结束。最后,使用CLOSE和DEALLOCATE关闭和释放游标。
通过以上代码,我们可以实现循环查询多张表格并逐个显示它们的结果。