• 定义和使用局部变量
    说明:
    1. 局部变量是用户可自定义的变量。
    2. 作用范围仅在程序内部。
    3. 局部变量的名称是用户自定义的,命名的局部变量名要符合SQL Server 2000标识符命名规则=>以@开
    4. 在查询分析器中运行的结果如下:
      --① 声明三个学生姓名变量
      declare @studentname1 nvarchar(200)
      declare @studentname2 nvarchar(200)
      declare @studentname3 nvarchar(200)
      --②-①通过set关键字赋值
      set @studentname1='王五'
      set @studentname2='赵六'
      set @studentname2='赵六'
      print @studentname1
      print @studentname2 --②-② 通过查询给三个变量赋值,此时@studentname*的作用范围在SELECT和GO的作用域内。
      SELECT @studentname1='张三', @studentname2='李四', @studentname3='王五'
      print 'strundent1:' + @studentname1
      print 'strundent2:' + @studentname2
      print 'strundent3:' + @studentname3
      go

      两者的区别:SET赋值语句一般用于赋给变量一个指定的常量,SELECT赋值语句一般用于从表中查询出数据然后赋给变量。

  • 定义和使用全局变量:
    说明:
      全局变量是SQL Server系统内部事先定义好的变量,不用用户参与定义,对用户而言是只读的。其作用范围并不局限于某一程序,而是任何程序均可随时调用。全局变量通常用于存储一些SQL Server的配置设定值和效能统计数据。
    注意:   

      ①   全局变量不是由用户的程序定义的,它们是在服务器级定义的。
      ②用户只能使用预先定义的全局变量。
      ③引用全局变量时,必须以标记符“@@”开头。
      ④局部变量的名称不能与全局变量的名称相同,否则会在应用程序中出现不可预测的结果。

    由于全局变量是系统定义的,我们这里只做举例。

    select @@ERROR 返回最后执行的 Transact-SQL 语句的错误代码(integer) (0,表示没错误;1,表示有错误)
    select APP_NAME ( ) as w --当前会话的应用程序
    select @@IDENTITY --返回最后插入的标识值
    select USER_NAME() --返回用户数据库用户名
    SELECT @@CONNECTIONS --返回自上次SQL启动以来连接或试图连接的次数。
    SELECT GETDATE() --当前时间
    SELECT @@CPU_BUSY/100 --返回自上次启动SQL 以来 CPU 的工作时间,单位为毫秒
    USE tempdb SELECT @@DBTS as w --为当前数据库返回当前 timestamp 数据类型的值。这一 timestamp 值保证在数据库中是唯一的。
    select @@IDENTITY as w --返回最后插入的标识值
    SELECT @@IDLE as w --返回SQL自上次启动后闲置的时间,单位为毫秒
    SELECT @@IO_BUSY AS w --返回SQL自上次启动后用于执行输入和输出操作的时间,单位为毫秒
    SELECT @@LANGID AS w --返回当前所使用语言的本地语言标识符(ID)。
    SELECT @@LANGUAGE AS w --返回当前使用的语言名
    SELECT @@LOCK_TIMEOUT as w --当前会话的当前锁超时设置,单位为毫秒。
    SELECT @@MAX_CONNECTIONS as w --返回SQL上允许的同时用户连接的最大数。返回的数不必为当前配置的数值
    EXEC sp_configure --显示当前服务器的全局配置设置
    SELECT @@MAX_PRECISION as w --返回 decimal 和 numeric 数据类型所用的精度级别,即该服务器中当前设置的精度。默认最大精度38。
    select @@OPTIONS as w --返回当前 SET 选项的信息。
    SELECT @@PACK_RECEIVED as w --返回SQL自启动后从网络上读取的输入数据包数目。
    SELECT @@PACK_SENT as w --返回SQ自上次启动后写到网络上的输出数据包数目。
    SELECT @@PACKET_ERRORS as w --返回自SQL启动后,在SQL连接上发生的网络数据包错误数。
    SELECT @@SERVERNAME as w --返回运行SQL服务器名称。
    SELECT @@SERVICENAME as w --返回SQL正在其下运行的注册表键名
    SELECT @@TIMETICKS as w --返回SQL服务器一刻度的微秒数
    SELECT @@TOTAL_ERRORS AS w --返回 SQL服务器自启动后,所遇到的磁盘读/写错误数。
    SELECT @@TOTAL_READ as w --返回 SQL服务器自启动后读取磁盘的次数。
    SELECT @@TOTAL_WRITE as w --返回SQL服务器自启动后写入磁盘的次数。
    SELECT @@TRANCOUNT as w --返回当前连接的活动事务数。
    SELECT @@VERSION as w --返回SQL服务器安装的日期、版本和处理器类型。
  • 参考文献
    SQLServer中的全局变量http://www.cnblogs.com/smileflower/archive/2009/12/23/1630175.html
    SQL语句变量定义和样例
    http://www.cnblogs.com/cnblog-long/p/5252196.html

  • 感谢
    感谢无私的博主进行分享……

SQL SERVER 变量的使用和样例的更多相关文章

  1. SQL Server变量赋值的方法

    SQL Server变量赋值我们经常会遇到,下面就为您介绍SQL Server变量赋值的两种方法,希望可以对您学习SQL Server变量赋值有所帮助. SQL Server中对已经定义的SQL Se ...

  2. 使用PD(Power Designer)设计数据库,并且生成可执行的SQL文件创建数据库(本文以SQL Server Management Studio软件执行为例)

    下载和安装PD: 分享我的软件资源,里面包含了对PD汉化包(链接出问题时可以留言,汉化包只能对软件里面部分菜单栏汉化) 链接:https://pan.baidu.com/s/1lNt1UGZhtDV8 ...

  3. 一次快速改寫 SQL Server 高效查詢的範例

    最近線上系統突然出現匯出資料超過 10 筆時,查詢逾時的狀況,在仔細查找之後. 發現了問題原因,透過應用端與數據端兩邊同時調整,將查詢的效率提昇了約數百倍以上 首先,原本應用端的商務邏輯為每一分頁筆數 ...

  4. sql server 变量 字符串拼接

    参考:SQL server中null+字符串,isnull以及把查询结果赋给一个字符变量组成另一个查询语句  1.开始定义的字符串都为null.例如:declare @sql,那么@sql就是null ...

  5. SQL SEVER 2008中的演示样例数据库

    SQL SEVER 2008数据库是什么我就不说了,我在这里分享一下怎样学习SQL SEVER 2008数据库,假设是对数据库或是SQL SEVER 数据库全然陌生或是不熟悉的人来说,建议看看一些视频 ...

  6. 数据库开发基础-SQl Server 变量、运算符、if、while

    变量: SQL语言也跟其他编程语言一样,拥有变量.分支.循环等控制语句. 在SQL语言里面把变量分为局部变量和全局变量,全局变量又称系统变量. 局部变量: 使用declare关键字给变量声明,语法非常 ...

  7. SQL server 变量、运算符

    一.三个表的练习 表一:学生表 student学号:code int (主键)从1开始姓名:name varchar(50)性别:sex char(10)班级:banji char(10)语文教师编号 ...

  8. (4.24)sql server变量中set与select的区别

    SET vs SELECT是SQL极客之间讨论的常见话题,也是最受欢迎的面试问题之一.SET用于为变量赋值,SELECT用于赋值或从变量/ table / view等中选择值. 让我们看看在不同场景中 ...

  9. SQL Server变量杂谈

    学习SQL的过程有进步的话还是一件很美妙的事情的 在第一家公司虽然只呆了两年,但是感觉是我进步最快的两年.那时候工作和生活都挺充实的,每天都有一点点的收获和付出,其中最大的收获莫过于掌握一些核心技能. ...

随机推荐

  1. jeesite学习(一) common部分(1)

    我们按照先细节后整体的方式来进行学习,即先了解各个包中包含的内容,再从整体上看各个包之间的关系. 0 common中的包 先看jeesite的common组件,common中共包含14个包(如下图), ...

  2. Java 中的数组

    1.声明数组String [] arr;int arr1[];String[] array=new String[5];int score[]=new int[3]; 2.初始化数组://静态初始化i ...

  3. Dubbo java.io.IOException: Can not lock the registry cache file

    跑单测用例的时候,以前执行成功的用例,运行时控制台仍然会报 dubbo 相关的错误: Failed to save registry store file, cause: Can not lock t ...

  4. Delphi的Hint介绍以及用其重写气泡提示以达到好看的效果

    Delphi中使用提示是如此简单,只需将欲使用Hint的控件作如下设置: ShowHint := True; Hint := ‘提示信息’; 不必写一行代码,相当方便. 但有时我们又想自己定制提示的效 ...

  5. system()、exec()、fork()三个与进程有关的函数的比较

    启动新进程(system函数) system()函数可以启动一个新的进程. int system (const char *string ) 这个函数的效果就相当于执行sh –c string. 一般 ...

  6. 分解机(Factorization Machines)推荐算法原理

    对于分解机(Factorization Machines,FM)推荐算法原理,本来想自己单独写一篇的.但是看到peghoty写的FM不光简单易懂,而且排版也非常好,因此转载过来,自己就不再单独写FM了 ...

  7. AutoMapper.RegExtension[.NET Core版本] 介绍

    Technorati 标签: AutoMapper.RegExtension,AutoMapper.RegExtension .NET CORE AutoMapper.RegExtension 为一个 ...

  8. 如何记录selenium自动化测试过程中接口的调用信息

    上一篇博客,我写了python自动化框架的一些知识和粗浅的看法,在上一篇中我也给自己提出一个需求:如果记录在测试过程中接口的调用情况?提出这个需求,我觉得是有意义的.你在测试过程中肯定会遇到一些莫名其 ...

  9. 02 nodejs命令参数(NodeJS基础入门)

    声明:本文章可供有一定js基础的朋友参考nodejs入门,本文未讲解nodejs的安装,如有需要的同学可以加QQ3382260752找我,进行交流学习. 建议使用开发软件:webstorm或hbuil ...

  10. adobe edge animate 和 adobe animate cc 有啥区别?

    经常有人问这两款软件的区别,每次都要打字好烦,特此总结发帖如下: 一.首先各自软件介绍 ①adobe edge animate 是adobe公司早期推出的一款网页互动工具.通过HTML+CSS+Jav ...