为了账号安全,请及时绑定邮箱和手机立即绑定

关于sqlserver的T-SQL语句的变量作用域的疑问?

关于sqlserver的T-SQL语句的变量作用域的疑问?

慕姐8265434 2019-04-12 07:06:53
关于sqlserver的T-SQL语句的变量作用域的疑问?
查看完整描述

3 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

变量有几点:
1. go语句后,也就是一个批次内有效.
2. 存储过程内表示一个域.走出存储过程就没有效了,包括子存储过程,动态语句内也无效.
3. 一个批次只需要声明一次.

建议编写t-sql的时候,养成将变量声明在语句首的习惯.不要在逻辑控制语句内声明.

查看完整回答
反对 回复 2019-04-13
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

T-SQL的变量作用域,同普通程序的作用域差不多,只在定义的范围内有效
1.if else内定义的,只能在这里面使用,出去后无效
2.if else之前定义的,也可以在if else内使用
3.if else之后定义的,不可能在if else内使用

关于唯一性,同级的两个作用域中可以定义相同的,但不同级的不能重名

查看完整回答
反对 回复 2019-04-13
?
侃侃无极

TA贡献2051条经验 获得超10个赞

T-SQL的变量作用域和JAVA里一样,既有局部变量也有全局变量,其用法跟jAVA也一样。
比如
一、declare @count int1
if begin end else beigin end
这里的@count就是全局变量
二、if begin declare @count int1 end else beigin end
这里的@count就是局部变量

以上指的唯一性,如果是全局变量则是唯一的,如果是局部变量,在同级层的作用域是可以重复的




查看完整回答
反对 回复 2019-04-13
  • 3 回答
  • 0 关注
  • 909 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信