sql-server - 如何选择 * 并按字母顺序获取所有字段

标签 sql-server tsql

这可能是一个奇怪的问题。

我有一个包含 100 多列的表。我想 SELECT * 所有列并获取结果查询,列按字母顺序排列。

在 T-SQL 中可以吗?

谢谢

最佳答案

您可以使用系统目录 View 中的可用信息构建动态 SQL 语句。

下面的示例代码展示了如何:

DECLARE @sql AS NVARCHAR(MAX)
DECLARE @cols AS NVARCHAR(MAX)

DECLARE @tbl NVARCHAR(MAX) = N'your_table' -- this is your source table

SELECT @cols= ISNULL(@cols + ',','') + QUOTENAME(c.name)
FROM sys.tables t 
join sys.columns c ON c.object_id = t.object_id
WHERE t.name = @tbl
ORDER BY c.name

SET @sql = N'SELECT ' + @cols + ' FROM ' + @tbl
EXEC sp_executesql @sql

关于sql-server - 如何选择 * 并按字母顺序获取所有字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37816250/

相关文章:

sql - 将所有查询合并为一个

sql-server - 具有联接和动态列的 SQL SERVER PIVOT 表

sql-server - 更改列,添加默认约束

java - 一个 SQL 查询中的多个语句,还是使用 Batch?

sql-server - 警告 CS0618 解决方案

c# - 小型集合中 linq 和 INTERSECT/EXCEPT 的低性能

sql-server-2008 - 消息102,级别15,状态1,行1'<'附近的语法不正确

performance - 在表之间进行连接时,决定表顺序的因素是什么?

sql - 相同的数学逻辑,不同的结果?

sql - 如何从 SQL Server 2014 中的指定行获取指定数量的先前行?