如何在不指定列名的情况下 return table 第一列中的所有值?

How to return all values in the first column of a table without specifying column's name?

我需要创建一个动态 sql 查询,以便 return table 第一列中的所有值。 table 的名称需要是一个变量@tableName(我将 运行 此查询用于多个 table 取决于几个条件)。另外,我不知道第一列的确切名称,但它是由 Id_@tableName .

组成的

我需要类似下面但动态写的东西:

select
(select column_name from INFORMATION_SCHEMA.columns where table_Name= @tableName and ordinal_position=1)
from @tableName

你能帮帮我吗?提前致谢!

USE AdventureWorks;
GO

DECLARE @ObjectName SYSNAME = 'Sales.SalesOrderHeader';

DECLARE @SQL NVARCHAR(MAX);
SELECT
    @SQL = 'SELECT ' + QUOTENAME(name) + ' FROM ' + @ObjectName
FROM
    sys.columns
WHERE
    object_id = OBJECT_ID(@ObjectName)
    AND column_id = 1;
EXEC sp_executesql @SQL;