/*waitfor*/
/*WAITFOR { DELAY 'time' | TIME 'time' }
DELAY是在完成 WAITFOR 语句之前等待的时间。完成 WAITFOR 语句之前等待的时间最多为 24 小时。
TIME 关键字后为 time_to_execute,它指定 WAITFOR 语句要等待的时间。
*/
WAITFOR DELAY '00:00:02' SELECT EmployeeID FROM Northwind.dbo.Employees
--指定在执行 SELECT 语句之前等待两秒:
USE pubs
BEGIN
WAITFOR TIME '22:00' DBCC CHECKALLOC
END
--TIME 关键字指定在 10 P.M 以后对指定数据库 pubs 进行检查,以确保所有页的分配和使用正确
--一组要执行的 T-SQL 语句可以包含在 BEGIN END 中,相当于{}
/*while循环*/
WHILE (SELECT AVG(price) FROM good) < 4000
--市场平均价不得超过4000元
BEGIN
UPDATE good
SET price = price * 2
--价格增加一倍
IF (SELECT MAX(price) FROM good) >3000
--商品最高价格不得超过3000
BREAK
ELSE
CONTINUE
END
--市场价分析实例
/*CASE(有列名)*/
create table goods
(
gid int primary key,
gname varchar(10),
price money default 3000
)
insert into goods values (1001,'mp3',default)
insert into goods values (1002,'mp4',default)
insert into goods values (1001,'cpu',default)
select gid,
case gname
when 'mp3' then '显示器'
else 'hd'
end
as gname from goods
--上面六行仅为一条select语句
--CASE与end成对出现
--将or显示为oregon
--case仅修改显示内容,不修改表中实际内容
/*case表达式(无列名)*/
select gid ,
case
when gname='mp3' and gid=1001 then '显示器'
else gname
--上行的列名gname代表无操作
end
as gname from goods
--case表达式与case的主要区别为case表达式可以加条件判断
/*update语句中使用case表达式*/
UPDATE publishers SET state =
CASE
WHEN country <> 'USA' THEN '--'
ELSE state
END
, city =
CASE
WHEN pub_id ='9999' THEN'LYON'
ELSE city
END
WHERE country <>'USA' OR pub_id ='9999'
--上面只有一条语句,不知道使用这样的缩进是把句子结构看清楚了?还是更晕了?
/*WAITFOR { DELAY 'time' | TIME 'time' }
DELAY是在完成 WAITFOR 语句之前等待的时间。完成 WAITFOR 语句之前等待的时间最多为 24 小时。
TIME 关键字后为 time_to_execute,它指定 WAITFOR 语句要等待的时间。
*/
WAITFOR DELAY '00:00:02' SELECT EmployeeID FROM Northwind.dbo.Employees
--指定在执行 SELECT 语句之前等待两秒:
USE pubs
BEGIN
WAITFOR TIME '22:00' DBCC CHECKALLOC
END
--TIME 关键字指定在 10 P.M 以后对指定数据库 pubs 进行检查,以确保所有页的分配和使用正确
--一组要执行的 T-SQL 语句可以包含在 BEGIN END 中,相当于{}
/*while循环*/
WHILE (SELECT AVG(price) FROM good) < 4000
--市场平均价不得超过4000元
BEGIN
UPDATE good
SET price = price * 2
--价格增加一倍
IF (SELECT MAX(price) FROM good) >3000
--商品最高价格不得超过3000
BREAK
ELSE
CONTINUE
END
--市场价分析实例
/*CASE(有列名)*/
create table goods
(
gid int primary key,
gname varchar(10),
price money default 3000
)
insert into goods values (1001,'mp3',default)
insert into goods values (1002,'mp4',default)
insert into goods values (1001,'cpu',default)
select gid,
case gname
when 'mp3' then '显示器'
else 'hd'
end
as gname from goods
--上面六行仅为一条select语句
--CASE与end成对出现
--将or显示为oregon
--case仅修改显示内容,不修改表中实际内容
/*case表达式(无列名)*/
select gid ,
case
when gname='mp3' and gid=1001 then '显示器'
else gname
--上行的列名gname代表无操作
end
as gname from goods
--case表达式与case的主要区别为case表达式可以加条件判断
/*update语句中使用case表达式*/
UPDATE publishers SET state =
CASE
WHEN country <> 'USA' THEN '--'
ELSE state
END
, city =
CASE
WHEN pub_id ='9999' THEN'LYON'
ELSE city
END
WHERE country <>'USA' OR pub_id ='9999'
--上面只有一条语句,不知道使用这样的缩进是把句子结构看清楚了?还是更晕了?