如何选择*并按字母顺序排列所有字段

sti*_*ghy 3 t-sql sql-server

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

我有一张100多列的表格.我想要SELECT *所有列并获得按字母顺序排列的结果查询.

在T-SQL中有可能吗?

谢谢

jpw*_*jpw 8

您可以使用系统目录视图中提供的信息构建动态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
Run Code Online (Sandbox Code Playgroud)