SQL关键字“ AS”的目的是什么?

时间:2019-03-26 10:26:37

标签: sql-server tsql stored-procedures

我想知道AS关键字在SQL Server中的作用。

我知道在设置别名的查询中使用它的上下文,但是,我不知道在存储过程或用户定义函数中使用它时的含义。为什么在begin关键字之前需要它?

CREATE FUNCTION dbo.UDF_rangeoddeven( @start int, @end int, @oddeven nvarchar(4)) 
returns @table table
(
    Number int 
) 
AS
BEGIN
    IF @oddeven = 'even'
        WHILE @start <= @end
            BEGIN
                IF @start%2 = 0
                    BEGIN
                    INSERT INTO @table
                    SELECT @start;
                    END
                SET @start = @start + 1; 
            END
    ELSE
        WHILE @start <= @end
            BEGIN
                IF @start%2 = 1
                BEGIN
                    INSERT INTO @table
                    SELECT @start;
                END
                SET @start = @start + 1;
            END
    RETURN
END
GO

1 个答案:

答案 0 :(得分:1)

这是一种语言语法。

对于存储的函数/过程(sps),公共表表达式(CTE)和视图,AS是声明语法的一部分。可以这样想:声明public_part AS私有部分

sp的公共部分是它的声明:如何访问它。私有部分是代码。 CTE也是如此:

WITH summary AS (
   SELECT id, MAX(val) maxval, MIN(val) minval, SUM(val) sumval
     FROM raw
    GROUP BY ID
)

语法与SELECTs中使用的方式相反,在SELECTs中,它声明表达式AS名称。

为什么要逆转?也许Stonebraker博士或Date博士知道吗?

某些SQL方言允许在某些情况下省略AS