SQL SERVER 变量的使用和样例

  • 定义和使用局部变量
    说明:
    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

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


         

posted @ 2017-04-24 22:00  cpx1975  阅读(563)  评论(0编辑  收藏  举报