SQL Server—T-SQL编程

1、变量

(1)局部变量

A、局部变量必须以标记@作为前缀 ,@age

B、局部变量的使用先声明,再赋值。

C、声明局部变量

               DECLARE   @变量名  数据类型

D、赋值 

SET @变量名 =     

SELECT  @变量名 =

-- 变量声明

DECLARE @name NVARCHAR(20)

-- 变量赋值

SET @name='wxh'

-- 选择或者打印

PRINT @name

 

(2)全局变量

A、全局变量必须以标记@ @作为前缀,@@version

B、全局变量由系统定义和维护,我们只能读取,不能修改全局变量的值  

C、全局变量的类型与含义

变量

含义

@@ERROR

最后一个T-SQL错误的错误号

@@IDENTITY

最后一次插入的标识值

@@LANGUAGE

当前使用的语言的名称

@@MAX_CONNECTIONS

可以创建的同时连接的最大数目

@@ROWCOUNT

受上一个SQL语句影响的行数

@@SERVERNAME

本地服务器的名称

@@TRANSCOUNT

当前连接打开的事务数

@@VERSION

SQL Server的版本信息

-- 查看全局变量

SELECT @@ERROR AS '错误编码', @@LANGUAGE AS '当前语言', @@MAX_CONNECTIONS

       AS 最大连接数, @@SERVERNAME AS '本地服务器名称', @@TRANCOUNT

       AS '当前连接打开的事务数' , @@VERSION AS '版本'

输出如下:

错误编码    当前语言    最大连接数  本地服务器名称  当前连接打开的事务数    版本

0  

简体中文

32767 

DESKTOP-4L7OEN6  

0  

Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (X64)   Jul  9 2008 14:17:44   Copyright (c) 1988-2008 Microsoft Corporation  Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: )

 

2、输出语句

(1)print 局部变量或字符串

结果在消息窗口以文本方式显示。  

(2)SELECT 局部变量  AS  自定义列名 

结果在网格窗口以表格方式显示。

-- 输出语句

-- print

PRINT '中国计量大学'

-- select

DECLARE @s NVARCHAR(20)

SET @s='中国计量大学'

SELECT @s AS '就读学校'

输出如下:

消息:

中国计量大学

结果:

就读学校

中国计量大学

 

3、逻辑控制语句

(1)IF-ELSE 条件语句

IF(条件

BEGIN  

语句块„„

END

ELSE 

„„

-- if else 条件语句

DECLARE @score INT

SET @score=60

IF(@score BETWEEN 0 AND 59)

BEGIN

    PRINT '不及格'

END

ELSE IF(@score BETWEEN 60 AND 79)

BEGIN

    PRINT '及格'

END

ELSE

BEGIN

    PRINT '优秀'

END

 

(2)WHILE 循环语句

WHILE(条件

BEGIN  

语句块„„

                (BREAK)-- 跳出循环,可选语句。

END

-- while循环

DECLARE @w INT

DECLARE @h INT

DECLARE @i INT

DECLARE @j INT

DECLARE @p NVARCHAR(50)

SET @h=10

SET @i=1

WHILE (@i<=@h)

BEGIN

    SET @p=''

    SET @w=@i

    SET @j=1

    WHILE (@j<=@w)

    BEGIN

       SET @p=@p + '* '

       SET @j=@j+1

    END

    PRINT @p

    SET @i=@i+1

END

输出结果:

*

* *

* * *

* * * *

* * * * *

* * * * * *

* * * * * * *

* * * * * * * *

* * * * * * * * *

* * * * * * * * * *

 

(3)CASEEND 多分支语句

CASE 

WHEN 条件1 THEN  结果1

WHEN 条件2 THEN  结果2    ……

               (ELSE) -- 其他结果,可选语句。

END

USE info

 

SELECT uId, uName,(CASE uGender

    WHEN 1 THEN '' WHEN 0 THEN '' ELSE '' END) AS uGender

    FROM dbo.[user]

 

输出结果:

uId   uName     uGender

1       吴鑫晖    

2       徐晨旖    

3   待天顶 

 

(4)GO 批处理语句

语句1

语句2

……

GO -- 批处理语句的标志

A批处理是包含一个或多个 SQL 语句的组,从应用程序一次性地发送到SQLServer 执行。SQL Server 将批处理语句编译成一个可执行单元,此单元称为执行计划。执行计划中的语句每次执行一条。

B GO是批处理的标志,表示SQL Server将这些T-SQL语句编译为一个执行单元,提高执行效率。一般是将一些逻辑相关的业务操作语句,放置在同一批中,这完全由业务需求和代码编写者决定。

C SQLServer规定:如果是建库、建表语句、以及我们后面学习的存储过程和视图等,则必须在语句

D、每个被GO分隔的语句都是一个单独的事务,一个语句执行失败不会影响其它语句执行。

末尾添加 GO 批处理标志,分批处理数据

USE MyInfo

GO

 

SELECT * FROM dbo.tb_user WHERE

GO --报错也会执行下面的语句

 

SELECT * FROM dbo.tb_user

GO

参考自:

http://wenku.baidu.com/link?url=uyhdNkvipHxpODugbCkPnp0Wx8mbYT1-WZ3iXWWDhyDqwF7tpLTA0hd9-491g97uZRBszv0Ztzn73jhWUpVwwpMtZM3BdFAA_QlHUtO8mTC

猜你喜欢

转载自blog.csdn.net/u013468915/article/details/51802835