如果你想要遍历所有表并查询出数据,你可以使用以下的SQL语句:
DECLARE @TableName NVARCHAR(MAX);
DECLARE @SQLQuery NVARCHAR(MAX);
DECLARE TableCursor CURSOR FOR
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE';
OPEN TableCursor;
FETCH NEXT FROM TableCursor INTO @TableName;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @SQLQuery = 'SELECT * FROM ' + @TableName;
EXEC sp_executesql @SQLQuery;
FETCH NEXT FROM TableCursor INTO @TableName;
END
CLOSE TableCursor;
DEALLOCATE TableCursor;
上述的SQL语句使用了一个游标(cursor)来遍历所有的表名,并通过动态SQL语句执行查询操作。在每次循环中,将表名拼接到查询语句的字符串上,并通过sp_executesql
函数执行动态SQL查询。
请注意,执行此类操作需要谨慎,因为会查询整个数据库中的所有表。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: Oracle SQL循环中的数据一致性问题