SQLserver查询所有库中表的第一条数据并转成列
时间: 2024-02-24 13:57:57 浏览: 21
您可以使用以下SQL查询语句来实现:
```
DECLARE @TableName NVARCHAR(MAX), @ColumnName NVARCHAR(MAX), @DynamicSQL NVARCHAR(MAX)
DECLARE @TableData TABLE (TableName NVARCHAR(MAX), ColumnName NVARCHAR(MAX), ColumnValue NVARCHAR(MAX))
DECLARE table_cursor CURSOR FOR
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
OPEN table_cursor
FETCH NEXT FROM table_cursor INTO @TableName
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT TOP 1 @ColumnName = COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @TableName
SET @DynamicSQL = 'SELECT ''' + @TableName + ''' AS TableName, ''' + @ColumnName + ''' AS ColumnName, CAST(' + @ColumnName + ' AS NVARCHAR(MAX)) AS ColumnValue FROM ' + @TableName + ' ORDER BY (SELECT NULL)'
INSERT INTO @TableData (TableName, ColumnName, ColumnValue)
EXEC sp_executesql @DynamicSQL
FETCH NEXT FROM table_cursor INTO @TableName
END
CLOSE table_cursor
DEALLOCATE table_cursor
SELECT TableName, ColumnName, ColumnValue
FROM @TableData
PIVOT (
MAX(ColumnValue)
FOR ColumnName IN ([Column1], [Column2], [Column3], [Column4], [Column5])
) AS PivotTable
```
请注意,以上示例中的列名是根据您的表结构而定的,您需要根据自己的具体情况进行修改。