T-SQL函数RETURNS @returntable COLUMN ALIAS被忽略

时间:2016-04-18 21:38:20

标签: sql-server tsql user-defined-functions

使用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

我原以为列别名会与返回表定义中的名称匹配。在我看来,选择列的顺序很重要,而不是列别名。有没有人有文件说明的地方的链接。

1 个答案:

答案 0 :(得分:0)

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