
T-SQL中批处理有什么作用
T-SQL中批处理有什么作用?难道sqlservermanagementstudio不是按照sql语句出现的先后顺序依次执行我们写的sql命令吗?例如:createdat...
T-SQL中批处理有什么作用?难道sql server management studio不是按照sql语句出现的先后顺序依次执行我们写的sql命令吗?例如:
create database 学生
use 学生
--以上语句在sql server下有错
create database 学生
GO
use 学生
--以上语句正确
为什么会出现这种结果?按书上的解释是,在use 学生时,必须需要前一条语句
create database 学生被执行,但是如果不加GO的话,sql server顺序向下执行
,先执行“create database 学生”,接着执行“use 学生”,那么在use 学生时,
“create database 学生”不也已经执行了吗? 展开
create database 学生
use 学生
--以上语句在sql server下有错
create database 学生
GO
use 学生
--以上语句正确
为什么会出现这种结果?按书上的解释是,在use 学生时,必须需要前一条语句
create database 学生被执行,但是如果不加GO的话,sql server顺序向下执行
,先执行“create database 学生”,接着执行“use 学生”,那么在use 学生时,
“create database 学生”不也已经执行了吗? 展开
2个回答
展开全部
定义:批处理是T-SQL语句集合的逻辑单元
特点:(1)在批处理的所有语句被整合成一个执行计划,一个批处理内的所有语句要么被放在一起通过解析,要么没有一句能够执行。
(2)多个批处理:每一个批处理都会被独立执行,每个批处理的错误不会阻止其它批处理的运行。
用途: 批处理有多种用途,但常被用在某些事情不得不放在前面发生,或者不得不和其它事情分开的脚本中。
GO是一个批处理结束的标识,比如有这么写语句CREATE......... INSERT....... UPDATE...... GO
如果你不加这个GO,那T-SQL是一条一条顺序执行的,如果加了GO,这几条语句就构成一个批处理块。
特点:(1)在批处理的所有语句被整合成一个执行计划,一个批处理内的所有语句要么被放在一起通过解析,要么没有一句能够执行。
(2)多个批处理:每一个批处理都会被独立执行,每个批处理的错误不会阻止其它批处理的运行。
用途: 批处理有多种用途,但常被用在某些事情不得不放在前面发生,或者不得不和其它事情分开的脚本中。
GO是一个批处理结束的标识,比如有这么写语句CREATE......... INSERT....... UPDATE...... GO
如果你不加这个GO,那T-SQL是一条一条顺序执行的,如果加了GO,这几条语句就构成一个批处理块。

2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
展开全部
偶以为
GO代表一个批处理的结束,
每个 GO 执行之前会检查语法,语义,对象等等,
木有GO ,就木有生成 database ‘学生', 检查过不了,报错
有了GO,处理完第一个批有了'学生',再检查第二个批的语法,再执行
GO代表一个批处理的结束,
每个 GO 执行之前会检查语法,语义,对象等等,
木有GO ,就木有生成 database ‘学生', 检查过不了,报错
有了GO,处理完第一个批有了'学生',再检查第二个批的语法,再执行
追问
也只好这么理解了,另外,"木有GO ,就木有生成 database ‘学生', 检查过不了,报错"这里的检查是在哪里检查?怎么检查?是到硬盘上去检查吗?
追答
当 SQL Server 可以开始处理查询语句时,SQL Manager 要在缓存内进行查找,如果没有找到该语句,则必须编译该语句。编译处理要完成以下几件工作。首先,要进行分析和正常化。分析就是剖析该 SQL 语句,将其转换成更适合计算机处理的数据结构。分析还要验证语法的正确性。分析不进行表名和列名合法性等检查,这些工作在正常化阶段完成。正常化主要是解析 SQL 语句中引用的对象,转换成实际的数据库对象,检查请求的语义是否有意义。例如,试图执行一个表,这在语义上就是错误的。
下一步是编译 Transact-SQL 代码。Transact-SQL 和 SQL 本身都让人有点儿困惑,Microsoft 的开发人员也像别人一样经常互换两个词。但是,这两者之间还是有重要差别的。SQL 包括所有 DML 语句:INSERT、UPDATE、DELETE 和 SELECT。SQL Server 还有一种包括这些 DML 语句的语言,称为 Transact-SQL,也就是 TSQL。TSQL 提供过程结构:IF 语句、WHILE 语句、局部变量声明等。服务器内部对 SQL 和 TSQL 的处理方法完全不同。TSQL 的过程逻辑要由知道如何进行过程化处理的引擎来编译。
你可以看下这个文章
原文链接:http://server.chinabyte.com/232/2603732.shtml
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询