T-SQL 函数 RETURNS @returntable 列别名被忽略

T-SQL Function RETURNS @returntable COLUMN ALIAS ignored

有T-SQL这个功能

CREATE FUNCTION [dbo].[FuncOrder]
(
   @param1 int,
   @param2 int
)
RETURNS @returntable TABLE
(
   c1 int,
   c2 int
)
AS
BEGIN
   INSERT @returntable
   SELECT @param1 as c2, @param2 as c1
   RETURN
END

以此执行

SELECT * FROM [dbo].[FuncOrder](
1,
2)
GO

结果是这样

c1  c2
1   2

我期望列别名与 return table 定义中的名称相匹配。在我看来,select 列的顺序很重要,而不是列别名。有没有人知道link 文件说的地方。

CREATE FUNCTION [dbo].[FuncOrder]
(
   @param1 int,
   @param2 int
)
RETURNS @returntable TABLE
(
   c1 int,
   c2 int
)
AS
BEGIN
   INSERT @returntable (c2, c1) --< That's the place to specify target columns
   SELECT @param1 as c2, @param2 as c1
   RETURN
END