先打个比方:如果你家来了客人,你妈妈给你2元钱到商店买1瓶啤酒给客人喝。结果客人不够喝,你妈怕浪费,又给你2元钱让你下楼再去买1瓶,结果又不够喝,又让你下楼再买1瓶,还不够,再让你买一瓶……这时你可能会怎么说?你肯定会不耐烦地回答:妈,拜托你,别让我每次1瓶1瓶的买,1次多买几瓶不就行了吗?<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
我们执行SQL语句同样如此,因为SQL Server是网络数据库,一台服务器可能有很多远程客户端,如果在客户端一次发送1条SQL语句,然后客户返回结果;然后再发送1条SQL语句,再返回,效率太低了。所以为了提高效率,SQL Server就引出了批处理的概念。
q 批处理是包含一个或多个 SQL 语句的组,从应用程序一次性地发送到SQL Server执行
q SQL Server 将批处理语句编译成一个可执行单元,此单元称为执行计划。执行计划中的语句每次执行一条
SELECT * FROM stuInfo
SELECT * FROM stuMarks
UPDATE stuMarks
SET writtenExam=writtenExam+2
GO
l GO是批处理的标志,表示SQL Server将这些T-SQL语句编译为一个执行单元,提高执行效率
l 一般是将一些逻辑相关的业务操作语句,放置在同一批中,这完全由业务需求和代码编写者决定
l SQLServer规定:如果是建库、建表语句、以及我们后面学习的存储过程和视图等,则必须在语句末尾添加 GO 批处理标志