当作学习总结吧!以下的内容很早以前就有人写过。但我还是要再写一下,一是练一下自己写这方面文章的能力,二是对知识点的学习有一下重温和加深。
SQL语言也跟其他编程语言一样,拥有变量、分支、循环等控制语句。之前我不清楚应该把这些归到哪个名词上,直到前晚我看到有篇文章是在讲SQL语句批处理,所有我就把SQL里的变量、分支、循环等控制语句归到批处理来。在SQL语言里面把变量分为局部变量和全局变量,全局变量又称系统变量。
先来看一下局部变量:
局部变量使用declare关键字给变量声明,语法非常简单:declare @<变量名> <变量类型> [,@<变量名> <变量类型> [.. ]]
从上面的[,@<变量名> <变量类型> [.. ]]这里我们可以看出他能一次声明多个变量,变量声明后但未赋值前,其值为NULL。对变量的赋值可以使用
set关键字,使用set关键字时对变量的赋值一次只能赋值一个。
来看一个实例:
declare @name nvarchar(50),@age int
print @name;
print @age;
print '----------------';
set @name='Jack'
set @age=18
print @name;
print @age;
print '----------------';
--结果显示:
----------------
Jack
18
----------------
可以看到在没有赋值前,他输出的是NULL。使用set关键字对变量的赋值一次只能赋值一个,那么怎么对多个变量进行赋值?这时可以使用select关键字
declare @name nvarchar(50),@age int
select @name='Jack',@age=18
print @name;
print @age;
print '----------------';
我们也可以在查询语句里面对这个变量进行赋值例如: select @name=sName from student where sid=1;
再来看一下全局变量
SQL Server有30多个全局系统变量,但有几个是常用到的,如下SQL语句
select @@VERSION --查看版本号
select @@IDENTITY; --返回最后插入的标识值--例如
USE MySchool
create table ideTest
(
id int identity(1,1) primary key,
idename nvarchar(50),
)
insert into ideTest(idename) values('test1');
insert into ideTest(idename) values('test2');
insert into ideTest(idename) values('test3');
ins