SQL server 中 关于@和declare的解释,请看详细
代码:
declare @n int //declare是什么意思? 是不是变量都要在前面加一个@符号来表示?为什么去掉@不行?
set @n=3
select top(@n) * from student 展开
@ 表示局部变量,@@ 表示全局变量
DECLARE: 定义变量,变量第一个字母是“@”,声明时需要指定变量的类型。
declare @n int ,其中int是使用整数数据的精确数字数据类型,从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据。
扩展资料:
1、可以使用set和select对变量进行赋值,在sql语句中就可以使用@local_variable来调用变量声明中可以提供值,否则声明之后所有变量将初始化为NULL;
2、有的时候在查询更新数据库的时候,需要多条语句的查询,因此需要多次修改,declare可以满足多次执行,但数据只修改一次;
3、使用 +、-、*、/ 或 % 等算术运算符将 int、smallint、tinyint 或 bigint 常量值隐式或显式转换为float、real、decimal 或 numeric 数据类型时,SQL Server 计算数据类型和表达式结果的精度时应用的规则有所不同,这取决于查询是否是自动参数化的。
1.SQL server使用declare来声明局部变量。
语法:DECLARE @local_variable data_type
其中,local_variable为局部变量的名称,data_type为数据类型。
2.SQL server中的变量前面都要加@。
其中,局部变量以一个@符号开头,全局变量以两个@@符号开头(如:@@ERROR)。
3.@可以看作局部变量的一个标志,是一种规定,不可以去掉的。
上图是declare一个简单应用的例子。
扩展资料:
1.用declare进行声明的同时也可对变量赋初值,如:declare @id int = 3
2.SQL server中使用@@表示的全局变量,是系统预先定义的,我们写的sql语句不能创建、修改这些变量的值,只能读取。
参考资料:
declare 变量定义,定义的变量需要以“@”符号开头。
declare @a varchar(10)
select @a=convert(varchar(2),Day(getdate()))+'天'
set @sql='select ['+@a+'] from 视图名'
execute(@sql)
DECLARE
{{ @local_variable [AS] data_type }
| { @cursor_variable_name CURSOR }
| { @table_variable_name < table_type_definition > }
} [ ,...n]
@local_variable
变量的名称。变量名必须以 at 符 (@) 开头。局部变量名必须符合有关标识符的规则。有关详细信息,请参阅使用标识符作为对象名称。
data_type
系统提供的类型、CLR 用户定义类型或别名数据类型。变量不能是 text、ntext 或 image 数据类型。有关系统数据类型的详细信息,请参阅数据类型。有关 CLR 用户定义类型或别名数据类型的详细信息,请参阅 CREATE TYPE (Transact-SQL)。