您的位置:程序门 -> .net技术 -> c#



关于批处理的问题(sql)


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


关于批处理的问题(sql)
发表于:2007-03-02 23:35:21 楼主
我想问一下大家,我写了一段批处理的指令(sql)。如果一共有十行。假如第五行出错了。那么第四行之前所作的操作会执行么(增删改)?第六行后面的操作还会执行么(增删改)?
发表于:2007-03-02 23:42:131楼 得分:0
没有实务控制,每一个单独的   sql   语句   (go相隔),会各自执行、生效。
在查询分析器,会继续往下。


批处理
批处理是包含一个或多个   transact-sql   语句的组,从应用程序一次性地发送到   microsoft?   sql   server?   执行。sql   server   将批处理语句编译成一个可执行单元,此单元称为执行计划。执行计划中的语句每次执行一条。

编译错误(如语法错误)使执行计划无法编译,从而导致批处理中的任何语句均无法执行。

运行时错误(如算术溢出或违反约束)会产生以下两种影响之一:  

大多数运行时错误将停止执行批处理中当前语句和它之后的语句。


少数运行时错误(如违反约束)仅停止执行当前语句。而继续执行批处理中其它所有语句。  
在遇到运行时错误之前执行的语句不受影响。唯一的例外是如果批处理在事务中而且错误导致事务回滚。在这种情况下,回滚运行时错误之前所进行的未提交的数据修改。

假定在批处理中有   10   条语句。如果第五条语句有一个语法错误,则不执行批处理中的任何语句。如果编译了批处理,而第二条语句在执行时失败,则第一条语句的结果不受影响,因为它已经执行。

以下规则适用于批处理:  

create   default、create   procedure、create   rule、create   trigger   和   create   view   语句不能在批处理中与其它语句组合使用。批处理必须以   create   语句开始。所有跟在该批处理后的其它语句将被解释为第一个   create   语句定义的一部分。


不能在同一个批处理中更改表,然后引用新列。


如果   EXECute   语句是批处理中的第一句,则不需要   EXECute   关键字。如果   EXECute   语句不是批处理中的第一条语句,则需要   EXECute   关键字。  
?1988-2000   microsoft   corporation。保留所有权利。

   
————————————————————————————————————
写作,虽然每个人都会查阅辞海,可,不是人人都能写出不朽的篇章的。编程,如是也。
发表于:2007-03-03 14:37:062楼 得分:0
这位同志。我在发这贴时已经找过sql的帮助同你所说一样。你是贴那里的上去。我的问题还未解决阿。。。。。。。。我要的清楚的。


快速检索

最新资讯
热门点击