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
有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