您的位置:首页 > 数据库

SQL Server Transact-SQL 编程

2011-07-15 18:59 447 查看
T-SQL语句用于管理SQLServer数据库引擎实例,创建和管理数据库对象,以及查询、插入、修改和删除数据。Ø变量1、局部变量(LocalVariable)局部变量是用户可以自定义的变量,它的作用范围是仅在程序内部,在程序中通常用来储存从表中查询到的数据或当做程序执行过程中的暂存变量。使用局部变量必须以@开头,而且必须用declare命令后才能使用。基本语法:
[code]声明变量
declare@变量名变量类型[@变量名变量类型]
为变量赋值
set@变量名=变量值;
select@变量名=变量值;
[/code]
示例:
[code]--局部变量
declare@idchar(10)--声明一个长度的变量id
declare@ageint--声明一个int类型变量age
select@id=22--赋值操作
set@age=55--赋值操作
printconvert(char(10),@age)+'#'+@id
select@age,@id
go
简单helloworld示例
declare@namevarchar(20);
declare@resultvarchar(200);
set@name='jack';
set@result=@name+'say:helloworld!';
select@result;
查询数据示例
declare@idint,@namevarchar(20);
set@id=1;
select@name=namefromstudentwhereid=@id;
select@name;
select赋值
declare@namevarchar(20);
select@name='jack';
select*fromstudentwherename=@name;
[/code]
从上面的示例可以看出,局部变量可用于程序中保存临时数据、传递数据。Set赋值一般用于赋值指定的常量个变量。而select多用于查询的结果进行赋值,当然select也可以将常量赋值给变量。
注意:在使用select进行赋值的时候,如果查询的结果是多条的情况下,会利用最后一条数据进行赋值,前面的赋值结果将会被覆盖。
2、全局变量(GlobalVariable)
全局变量是系统内部使用的变量,其作用范围并不局限于某一程序而是任何程序均可随时调用的。全局变量一般存储一些系统的配置设定值、统计数据。
[code]全局变量
select@@identity;--最后一次自增的值
selectidentity(int,1,1)asidintotabfromstudent;--将studeng表的烈属,以/1自增形式创建一个tab
select*fromtab;
select@@rowcount;--影响行数
select@@cursor_rows;--返回连接上打开的游标的当前限定行的数目
select@@error;--T-SQL的错误号
select@@procid;
--配置函数
setdatefirst7;--设置每周的第一天,表示周日
select@@datefirstas'星期的第一天',datepart(dw,getDate())AS'今天是星期';
select@@dbts;--返回当前数据库唯一时间戳
setlanguage'Italian';
select@@langIdas'LanguageID';--返回语言id
select@@languageas'LanguageName';--返回当前语言名称
select@@lock_timeout;--返回当前会话的当前锁定超时设置(毫秒)
select@@max_connections;--返回SQLServer实例允许同时进行的最大用户连接数
select@@MAX_PRECISIONAS'MaxPrecision';--返回decimal和numeric数据类型所用的精度级别
select@@SERVERNAME;--SQLServer的本地服务器的名称
select@@SERVICENAME;--服务名
select@@SPID;--当前会话进程id
select@@textSize;
select@@version;--当前数据库版本信息
--系统统计函数
select@@CONNECTIONS;--连接数
select@@PACK_RECEIVED;
select@@CPU_BUSY;
select@@PACK_SENT;
select@@TIMETICKS;
select@@IDLE;
select@@TOTAL_ERRORS;
select@@IO_BUSY;
select@@TOTAL_READ;--读取磁盘次数
select@@PACKET_ERRORS;--发生的网络数据包错误数
select@@TOTAL_WRITE;--sqlserver执行的磁盘写入次数
[/code]
Ø输出语句
T-SQL支持输出语句,用于显示结果。常用输出语句有两种:
基本语法

[code]print变量或表达式
select变量或表达式
[/code]
示例

[code]select1+2;
select@@language;
selectuser_name();
print1+2;
print@@language;
printuser_name();
[/code]
print在输出值不少字符串的情况下,需要用convert转换成字符串才能正常输出,而且字符串的长度在超过8000的字符以后,后面的将不会显示。
Ø逻辑控制语句
1、if-else判断语句
语法

[code]if<表达式>
<命令行或程序块>
elseif<表达式>
<命令行或程序块>
else
<命令行或程序块>
[/code]
示例
[code]if简单示例
if2>3
print'2>3';
else
print'2<3';
if(2>3)
print'2>3';
elseif(3>2)
print'3>2';
else
print'other';
简单查询判断
declare@idchar(10),
@pidchar(20),
@namevarchar(20);
set@name='广州';
select@id=idfromab_areawhereareaName=@name;
select@pid=pidfromab_areawhereid=@id;
print@id+'#'+@pid;
if@pid>@id
begin
print@id+'%';
select*fromab_areawherepidlike@id+'%';
end
else
begin
print@id+'%';
print@id+'#'+@pid;
select*fromab_areawherepid=@pid;
end
go
[/code]
2、while…continue…break循环语句
基本语法

[code]while<表达式>
begin
<命令行或程序块>
[break]
[continue]
<命令行或程序块>
end
[/code]
示例
[code]--while循环输出到
declare@iint;
set@i=1;
while(@i<11)
begin
print@i;
set@i=@i+1;
end
go
--whilecontinue输出到
declare@iint;
set@i=1;
while(@i<11)
begin
if(@i<5)
begin
set@i=@i+1;
continue;
end
print@i;
set@i=@i+1;
end
go
--whilebreak输出到
declare@iint;
set@i=1;
while(1=1)
begin
print@i;
if(@i>=5)
begin
set@i=@i+1;
break;
end
set@i=@i+1;
end
go
[/code]
3、case
基本语法
[code]case
when<条件表达式>then<运算式>
when<条件表达式>then<运算式>
when<条件表达式>then<运算式>
[else<运算式>]
end
[/code]
示例

[code]select*,
casesex
when1then'男'
when0then'女'
else'火星人'
endas'性别'
fromstudent;
selectareaName,'区域类型'=case
whenareaType='省'thenareaName+areaType
whenareaType='市'then'city'
whenareaType='区'then'area'
else'other'
end
fromab_area;
[/code]
4、其他语句
[code]批处理语句go
Usemaster
Go
延时执行,类似于定时器、休眠等
waitfordelay'00:00:03';--定时三秒后执行
print'定时三秒后执行';
[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: