更改存储函数中的表列名

vc9ivgsu  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(199)

我正在使用以下函数:

ALTER FUNCTION TestFunc (@year INT)
RETURNS @RetTable TABLE(
    Forename VARCHAR(32),
    Lastname VARCHAR(32),
    Course1 INT,
    Course2 INT,
    Course3 INT
)

在函数体中,我声明了各种变量,例如:

DECLARE @CourseOne VARCHAR(12);
DECLARE @CourseTwo VARCHAR(12);
DECLARE @CouseThree VARCHAR(12);

然后我想使用这些变量来应用另一个列名,如下所示:

INSERT INTO @RetTable SELECT Forename, Lastname, C1 AS @CourseOne, C2 AS @CourseTwo, C3 AS @CourseThree FROM Teachers

本例中的问题是,列名仍然是“course1,course2,course3”,即使我试图“重命名”insert中的列
有没有办法让这项工作或有任何其他方法,我可以解决这个问题?

nhjlsmyf

nhjlsmyf1#

不能重命名表中的列。为什么要重命名函数中间的列?
您可以在调用函数时重命名它们

SELECT Forename, Lastname, Course1 AS CourseOne, Course2 AS CourseTwo,Course3 AS Course3
FROM TestFunc(@year)

或者,您可以更改函数声明,使表在开始时命名为courseone等

相关问题