带或不带AS的参数' TSQL中的关键字

时间:2016-11-21 15:28:32

标签: tsql parameters variable-declaration

我对TSQL有点新鲜(主要是MySQL体验)。我遇到了一些参数声明,我不确定在存储过程中声明的差异是什么(如果有的话)与没有' as'关键字:

CREATE PROCEDURE [dbo].[SomeStoredProc]
    @variable1 varchar(50),
    @variable2 as varchar(50)
...

3 个答案:

答案 0 :(得分:2)

奇怪的是,the documentation并未将AS视为语法的一部分,既不是可选的也不是强制性的。

但是,无论如何,没有区别。

答案 1 :(得分:1)

据我所知,除了别名列,AS是预期的(但不是强制性的),AS是可选的,更常见的是不在查询中使用。关于功能,它们是相同的。

FROM Table1 AS t
FROM Table1 t 
--They are the same.

答案 2 :(得分:0)

如果你看到这样的变量并且代码没有DECLARE它们就意味着在执行查询时必须传递这些变量;

CREATE PROCEDURE [dbo].[SomeStoredProc]
@variable1 varchar(50),
@variable2 as varchar(50)

AS


DECLARE @Variable3 varchar(50)
/* PUT YOUR STORED PROC CODE HERE */

当您运行EXEC SomeStoredProc时,您需要使用Variable1Variable2的值进行操作,否则会出错。上面的Variable3是在存储过程中创建的,因此不需要使用EXEC命令传递。