前面我们说了一下,存储过程和视图,
下面我们来简单的了解下数据库中 while ,case ,if ..else 这几个对象
1 while
while 是根据它接到bool值是true还是false 来执行重复操作的一个命令对象。
语法:
while 条件
begin
.....
end
示例
DECLARE @start INT
set @start=1
WHILE @start<=10
BEGIN
PRINT @start
SET @start=@start+1
END
2 case
case 根据一套逻辑返回一个特定的值,
DECLARE @value INT
SET @value=1
SELECT CASE @value
WHEN 1 THEN 'guanbi'
WHEN 2 THEN 'dakai'
END
上面这个例子返回的结果是,如下图
而下面这个case 语句返回则是,如下图
DECLARE @value INT
SET @value=1
SELECT CASE @value
WHEN 1 THEN '关闭'
WHEN 2 THEN '打开'
END
大家会注意看到,如果 THEN 后面加的是中文 ,则返回的结果是“?” ,也许别的版本数据库不会出现这种情况,我没有试过,本人用的是sql server 2005 ,
3 if ...else
这个相对上面那两个大家应该会陌生吧,如果条件,则执行该条件的sql 语句,反则执行下一个条件的sql 语句,下面我们还是拿一个简单例子来说明这一点。
语法
if 条件
要执行的语句
else
要执行的语句
示例
DECLARE @i INT
SET @i=1
WHILE (@i<=(SELECT COUNT(*) FROM chengji))
BEGIN
SELECT xingming
,fenshu
,CASE fenshu
WHEN 100 THEN 'youxiu'
WHEN 60 THEN 'hege'
WHEN 30 THEN 'buhege'
END
FROM chengji
SET @i=@i+1
END
4 try ... catch ...
示例:
BEGIN TRY
DECLARE @X INT
-- Divide by zero to generate Error
SET @X = 1/0
PRINT 'Command after error in TRY block'
END TRY
BEGIN CATCH
PRINT 'Error Detected'
END CATCH
到这里,这几个简单的数据库对象介绍完了,当然这些都是皮毛而已,虽然是这样,但这也是基础,再复杂的脚本都是多个简单脚本的组成的,被称为复合的简单性,只要我们把这些最简单一点点的积聚起来,我们也能像他们一样,写出令人另眼相看的sql 语句.