我应该在声明它的同一行中设置一个变量吗?

Vic*_*ork 6 sql-server t-sql

我经常看到语法

Declare @var int;
Set @var = 1;
Run Code Online (Sandbox Code Playgroud)

但是您可以在声明时设置变量

Declare @var int = 1;
Run Code Online (Sandbox Code Playgroud)

后一种选择有问题吗?我是否遗漏了一些内部的东西,或者在您不应该在声明中声明和设置变量的所有情况下都不起作用?

我问是因为我听到了我没想到的副标题。就像 Aaron Bertrand小写数据类型一样,msdn 也没有说明,但已在社区中找到。

McN*_*ets 2

在 SQL Server 2008 之前这是不可能的。在此版本之前,您应该声明变量,然后设置其值。

根据MS DOCS

本主题适用于:
SQL Server(从 2008 年开始)
Azure SQL 数据库
Azure SQL 数据仓库
并行数据仓库

  • 仅供参考,所有文档现在都注明“从 2008 年开始”——这只是一个巧合。查看 [`ROW_NUMBER()`](https://msdn.microsoft.com/en-us/library/ms186734.aspx) 和 [`MIN()`](https://msdn.microsoft.com/en例如,-us/library/ms179916.aspx)。显然这些函数在 SQL Server 2008 之前就已经存在了。这是文档团队的捷径,我认为这是不明智的,但这是另一个问题了。 (6认同)