ALTER表列名在存储函数中

问题描述 投票:0回答:1

我正在使用以下函数。

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

在这种情况下的问题是,列名仍然是""课程1、课程2、课程3",即使我试图在 "重命名 "中的列。插入

有什么办法可以让这个问题得到解决,或者说有什么其他方法可以解决这个问题?

sql sql-server tsql stored-functions
1个回答
0
投票

你不能重命名表中的列。 为什么要在函数中间重命名列?

你可以在调用函数的时候重命名它们。

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

或者你可以改变你的函数声明,在开始时将表命名为CourseOne等。

© www.soinside.com 2019 - 2024. All rights reserved.