【发布时间】:2018-06-29 18:07:57
【问题描述】:
我需要快速查看 MS SQL 数据集中的数据,并找到以下代码,除了我需要的最后一列之外,它提供了所有内容。第三列应显示第一行的数据。
SELECT TABLE_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS
所以我的问题是我应该如何制定 SQL 查询以获取包含第一行数据的第三列)?
//更新 除了数据来自哪个表之外,这段代码给了我我想要的一切。 (雅罗斯拉夫在Select the first 3 rows of each table in a database 回答的类似问题)
DECLARE @sql VARCHAR(MAX)='';
SELECT @sql=@sql+'SELECT TOP 3 * FROM '+'['+SCHEMA_NAME(schema_id)+'].['+name+']'+';'
FROM sys.tables
EXEC(@sql)
【问题讨论】:
-
如果为不同的表选择元数据,如何才能拥有相同数量的列?
-
您是要查找列的数据类型还是表中的实际值?
-
@TimBiegeleisen 我不确定我是否理解你的问题?也许我的列公式不清楚?在图片中,我认为它显示 2 列。在 COLUMN_NAME 的右侧,我希望它说一些通用的内容,然后对于每一行,它应该显示该列中的数据。这样做的目的是让我找出每个表中有哪些类型的数据,而无需手动通过每个表 ni SSMS。
-
@Markov 这是我追求的实际价值。我在对 Tim 的评论中详细阐述了一些内容。
-
@MagnusKarlsson 我现在明白了。我认为您需要使用动态 SQL 来执行此操作。您可以对第三列使用标量子查询,在要检索的列和表名中使用管道。
标签: sql-server tsql