--T-SQL

--T-SQL不是标准SQL语句,它是微软添加的一些对SQL语句的扩展

--变量:局部变量,全局变量

--局部变量:声明一个局部变量需要使用@开头

declare @name nvarchar(8)

declare @age int

set @age=18

set @name='菲菲'

select @name='飞飞飞'

select @name as 姓名

print @age

 

--set和select赋值的区别

--从student表中,读取出'菲菲'的年龄,然后赋值到@age变量里

set @age=(select DATEDIFF(year,stuBirthday,getdate()) from student where stuName='张飞')

select @age as '年龄'

--如果使用set给变量赋值,值是用select语句从数据表里查出来的,需要把select语句用()括住

select @age=DATEDIFF(YEAR,stuBirthday,GETDATE()) from student where stuName='张飞'

select @age

 

--一般如果从数据表里读值,赋值给变量,多使用select关键字赋值,其他的用set

 

declare @name nvarchar(8)

select stuName from student

--如果查询出的结果是多个值,不允许使用set给变量赋值

--但是可以使用select给变量赋值,所赋的值是查询结果的最后一个值

 

declare @number int

set @number=3

set @number +=1

select @number

--如果不给变量赋初值,那么变量的初值就是NULL,NULL与任何数做运算结果还是NULL

 

 

--全局变量

--SQL Server的全局变量是由系统定义和维护的,我们只能读取已定义的全局变量的值。

--不能自定义,也不能修改全局变量的值

--全局变量是@@开头的

select @@VERSION

select @@LANGUAGE

select @@MAX_CONNECTIONS

select @@SERVERNAME

 

select * top(3) from student

select @@ERROR--上一次执行的错误码