ALTER table 存储函数中的列名
ALTER table column name in stored function
我正在使用以下功能:
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”,即使我尝试 "rename" 插入
有什么方法可以解决这个问题,或者有什么其他方法可以解决这个问题吗?
您不能重命名 table 中的列。为什么要在函数中间重命名列?
您可以在调用函数时重命名它们
SELECT Forename, Lastname, Course1 AS CourseOne, Course2 AS CourseTwo,Course3 AS Course3
FROM TestFunc(@year)
或者您可以更改您的函数声明,使 tables 在开始时命名为 CourseOne 等
我正在使用以下功能:
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”,即使我尝试 "rename" 插入
有什么方法可以解决这个问题,或者有什么其他方法可以解决这个问题吗?
您不能重命名 table 中的列。为什么要在函数中间重命名列?
您可以在调用函数时重命名它们
SELECT Forename, Lastname, Course1 AS CourseOne, Course2 AS CourseTwo,Course3 AS Course3
FROM TestFunc(@year)
或者您可以更改您的函数声明,使 tables 在开始时命名为 CourseOne 等