SQL server 中 关于@和declare的解释,请看详细

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL server 中 关于@和declare的解释,请看详细相关的知识,希望对你有一定的参考价值。

返回三条学生信息
代码:
declare @n int //declare是什么意思? 是不是变量都要在前面加一个@符号来表示?为什么去掉@不行?
set @n=3
select top(@n) * from student

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语句不能创建、修改这些变量的值,只能读取。

参考资料:

百度百科——SQLServer

参考技术A

@ 表示局部变量,@@ 表示全局变量


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 计算数据类型和表达式结果的精度时应用的规则有所不同,这取决于查询是否是自动参数化的。

参考技术B 数据库脚本中:
declare 变量定义,定义的变量需要以“@”符号开头。本回答被提问者采纳
参考技术C declare @sql varchar(500)
declare @a varchar(10)
select @a=convert(varchar(2),Day(getdate()))+'天'
set @sql='select ['+@a+'] from 视图名'
execute(@sql)
参考技术D 语法

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)。

以上是关于SQL server 中 关于@和declare的解释,请看详细的主要内容,如果未能解决你的问题,请参考以下文章

关于SQL Server 2017中使用json传参时解析遇到的多层解析问题

Sql Server 触发器和 PHP

SQL Server分区脚本备份

SQL server数据库declare和set用法技巧

SQL server2005中如何定义变量,如何给变量赋值

SQL Server中查询一个值出现的所有表。