SQL 中带或不带 'AS' 关键字的参数
Parameters with or without 'AS' keyword in TSQL
我对 TSQL 有点陌生(主要是 MySQL 经验)。我遇到了一些参数声明,我不确定有什么区别,如果有的话,区别在于在存储过程中声明时使用与不使用 'as' 关键字:
CREATE PROCEDURE [dbo].[SomeStoredProc]
@variable1 varchar(50),
@variable2 as varchar(50)
...
奇怪的是 the documentation 没有将 AS
显示为语法的一部分,既不是可选的也不是强制的。
不过,反正也没什么区别。
据我所知,除了别名列之外,AS
是预期的(但不是强制性的),AS
是可选的并且更常用于查询中。关于功能,它们是相同的。
FROM Table1 AS t
FROM Table1 t
--They are the same.
如果您看到这样的变量并且代码没有 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
时,你需要跟进 Variable1
和 Variable2
的值,否则它会出错。 Variable3
以上是在存储过程中创建的,因此不需要使用 EXEC
命令传递。
我对 TSQL 有点陌生(主要是 MySQL 经验)。我遇到了一些参数声明,我不确定有什么区别,如果有的话,区别在于在存储过程中声明时使用与不使用 'as' 关键字:
CREATE PROCEDURE [dbo].[SomeStoredProc]
@variable1 varchar(50),
@variable2 as varchar(50)
...
奇怪的是 the documentation 没有将 AS
显示为语法的一部分,既不是可选的也不是强制的。
不过,反正也没什么区别。
据我所知,除了别名列之外,AS
是预期的(但不是强制性的),AS
是可选的并且更常用于查询中。关于功能,它们是相同的。
FROM Table1 AS t
FROM Table1 t
--They are the same.
如果您看到这样的变量并且代码没有 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
时,你需要跟进 Variable1
和 Variable2
的值,否则它会出错。 Variable3
以上是在存储过程中创建的,因此不需要使用 EXEC
命令传递。