07存储过程及函数.ppt
文本预览下载声明
批处理:
有助于减少网络堵塞(network traffic)
多个命令一起被提交和执行
批处理(batch)是一组一起提交给SQL Server执行的SQL语句
在结尾使用GO命令以发送SQL语句到一个SQL Server实例
当编译器读取到GO语句时,会把GO前面的语句当成一个批处理,并把这些语句打包发送给服务器。
特点:批一次性的发送到SQL SERVER服务器执行,服务器将批处理语句编译成一个可执行单元,这种单元称为执行计划(execution plan)
举例;;变量;创建局部变量
DECLARE @variable_name data_type
DECLARE @MyCounter int
多个变量,用,隔开
DECLARE @LastName nvarchar(30), @FirstName nvarchar(20), @State nchar(2)
变量的作用域从声明变量的地方开始到声明变量的批处理或存储过程的结尾。 ;第一次声明变量时,其值设置为 NULL
赋值的方法:
SET 语句
SET @avgscore=60.0
SELECT 语句的选择列表中当前所引用值为变量赋值 ;多行注释
/*….*/
单行注释
--;以下规则适用于批处理:
CREATE DEFAULT、CREATE FUNCTION、CREATE PROCEDURE、CREATE RULE、CREATE TRIGGER 和 CREATE VIEW 语句不能在批处理中与其他语句组合使用。批处理必须以 CREATE 语句开始。所有跟在该批处理后的其他语句将被解释为第一个 CREATE 语句定义的一部分。
不能在同一个批处理中更改表,然后引用新列。
如果 EXECUTE 语句是批处理中的第一句,则不需要 EXECUTE 关键字。如果 EXECUTE 语句不是批处理中的第一条语句,则需要 EXECUTE 关键字。;课间思考;允许你使用下面的结构来控制语句的流程:
IF…ELSE 语句
CASE 语句
WHILE 语句;语法:
BEGIN ??
??{ ????????sql_statement | statement_block ?????} END
在处理时,整个语句块看作是一条SQL语句。;IF…ELSE 语句:
基于布尔表达式的结果执行特定的操作
语法:
IF boolean_expression {sql_statement | statement_block} [ELSE boolean_expression {sql_statement | statement_block}]
让我们看看如何…;DECLARE @Rate money
SELECT @Rate = Rate FROM HumanResources.EmployeePayHistory
WHERE EmployeeID = 23
IF @Rate 15
PRINT Review required
ELSE
BEGIN
PRINT Review not required
PRINT your rate =
PRINT @Rate
END;CASE 语句:
评估条件的一个列表并且返回可能结果中???一个
语法:
CASE
WHEN boolean_expression THEN expression
[[WHEN boolean_expression THEN expression]
[...]]
[ELSE expression]
END
让我们看看如何…;SELECT EmployeeID, Marital Status =
CASE MaritalStatus
WHEN M THEN Married
WHEN S THEN Single
ELSE Not specified
END
FROM HumanResources.Employee;WHILE 语句:
重复执行只要给定的条件为真
使用BREAK 和 CONTINUE语句来控制WHILE循环中的语句
语法:
WHILE boolean_expression
{sql_statement | statement_block}
[BREAK]
{sql_statement | statement_block}
[CONTINUE]
BREAK
导致从WHILE 循环中退出。将执行出现在 END 关键字(循环结束的标记)后面的任何语句。
CONTINUE
使 WHILE 循环重新开始执行,忽略 CONTINUE 关键字后面的任何语句。;Example: (WHILE)
WHILE (SELECT AVG(Rate)+1 fr
显示全部