我想知道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
答案 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
。