TSQL,重命名用户函数中返回表的列



我定义了返回包含 2 列的表的函数。我可以重命名这些列,以便生成的表如下所示:

Press name  |  Sum of pages

CREATE FUNCTION F_3
(@press nvarchar(255))
RETURNS @table TABLE ( Press nvarchar(255),
                       PagesSum int )
AS
BEGIN
    INSERT @table SELECT @press, SUM(Books.Pages)
    FROM Books, Press
    WHERE Press.Name = @press AND
        Books.Id_Press = Press.Id
    GROUP BY Press.Name
    RETURN
END
GO
SELECT * FROM F_3('BHV')
GO

我试着这样做

Press AS 'Press name' nvarchar(255)

但这行不通。

这是你的意思吗?

CREATE FUNCTION F_3
(@press nvarchar(255))
RETURNS @table TABLE ( [Press name]  nvarchar(255),
                   [Sum of pages] int )
AS
BEGIN
    INSERT @table SELECT @press, SUM(Books.Pages)
    FROM Books, Press
    WHERE Press.Name = @press AND
        Books.Id_Press = Press.Id
    GROUP BY Press.Name
    RETURN
END
GO
SELECT * FROM F_3('BHV')
GO

我刚刚更改了函数的返回行。除此之外,此函数的性能很差,因为它不是内联表值函数。 查看 MSDN 在 http://technet.microsoft.com/en-us/library/ms177499(v=sql.90) 上给出的示例.aspx

最新更新