T-SQL查询进阶–变量

概述

变量对于一种语言是必不可少的一部分,当然,对于T-SQL来讲也是一样。在简单查询中,往往很少用到变量,但无论对于复杂的查询或存储过程中,变量都是必不可少的一部分.

变量的种类

在T-SQL中,变量按生存范围可以分为全局变量(Global Variable)和局部变量(Local Variable).

1.全局变量是由系统定义的,在整个SQL SERVER实例内都能访问到的变量.全局变量以@@作为***个字符,用户只能访问,不能赋值。

2.局部变量由用户定义,生命周期只在一个批处理内有效。局部变量以@作为***个字符,由用户自己定义和赋值。

一个简单的例子如下

因为全局变量仅仅是用于读取系统的一些参数,具体每个全局变量所代表的含义请Google之…本文主要介绍局部变量(也就是用户自定义变量).

局部变量的用途

在T-SQL中,局部变量是一个存储指定数据类型单个值的对象.T-SQL中对变量的定义实际上和大多数高级语言一样.

局部变量在使用中常常用于以下三种用途:

1.在循环语句中记录循环的次数或者用于控制循环的次数.

2.用于存储流程语句来控制流程走向

3.储存存储过程或者函数的返回值

实际上,存储任何业务数据的局部变量都属于这一类应用.

#p#

局部变量的声明

局部变量的声明必须以”DECLEAR”作为关键字,变量的命名必须以”@”作为变量名的***个字符.必须为所声明的变量提供一个数据类型和数据长度.如:

局部变量的数据类型不能为Text,ntext,和Image类型,当对于字符型变量只提供数据类型没有提供数据长度时,数据长度默认为1.

一切只声明没有赋值的局部变量的初始值都为”NULL”.

局部变量的赋值

在T-SQL中,局部变量的赋值是通过”Set”关键字和”Select”关键字实现的.

实际上,使用Set或者是Select取决于下面几个因素

1.当对多个变量赋值时

SELECT关键字支持多个变量赋值,而SET关键字只支持一次对一个值赋值

2.当赋值时表达式返回值的个数

使用SET进行赋值时,当表达式返回多个值时,报错.而SELECT关键字在赋值表达式返回多个值时,取***一个.

比如,假设XXX表只有以下几条数据:

当使用SELECT关键字进行时,可以取返回值的***一个。

3.当表达式未返回值时

使用SET对局部变量赋值时,如果赋值表达式未返回值,则局部变量变为NULL,而SELECT对表达式赋值时,如果表达式未返回值,则局部变量保持原值.

4.当…你是一个标准爱好者时

坚决使用SET关键字对局部变量赋值吧,因为SET是ANSI标准……

5.当…你懒得记上述何时使用SET或是何时使用SELECT时

好吧,我承认我也很懒.那你按照一个简单的方式区别:当你的赋值语句需要引用一个数据源(表)时,使用SELECT.除此之外,使用SET.

#p#

局部表变量

局部表变量是一个特殊的局部变量.和临时表不同,局部表变量具有一切局部变量的特点.在查询中,因为局部表变量是存在内存中,而不是硬盘中,所以速度会远远快于临时表或是实际表,局部表变量最多的使用时在查询中充当多个表做连接时的中间表,比如:

这样会大大提高多表连接的查询速度.

总结

本文介绍了变量种类以及局部变量的使用范围,定义以及赋值方法.还简单介绍了表变量。在复杂查询中,系统的了解T-SQL的变量是写出好的查询语句必不可少的一部分。

 

原文链接:http://www.cnblogs.com/CareySon/archive/2011/10/11/2207330.html

【编辑推荐】

  1. 数据库点滴之SQL级联删除
  2. 数据库点滴之精妙SQL语句
  3. SQL点滴之性能优化其实没有那么神秘
  4. SQL点滴之几个有点偏的语句
  5. SQL点滴之如何编辑数据

 

 

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/282379.html<

(0)
运维的头像运维
上一篇2025-05-13 10:45
下一篇 2025-05-13 10:47

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注