以下事务(一个简短的例子)将失败,但怎样让他显示“执行失败”呢(在查询分析器中)?

YiYanXiYin 2004-07-27 10:02:20
--以下事务将失败,但怎样让他显示“执行失败”呢?
begin tran
create table t1(a int);
create table t2(b int);
insert into t1 select 1000;
select * from t1
insert into t2 select 'abc'
select * from t2
if @@error =0 begin
select '执行成功'
commit tran
end else begin
select '执行失败'
rollback tran
end
...全文
240 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wcccc1 2004-08-04
  • 打赏
  • 举报
回复
我觉的楼主问的这个问题意义不大啊,正常的插入删除不会出错吧,这个应定在具体的问题上,把你在对目标表操作时的几种情况先考虑进去,在操作前进行检查,看有这几种情况否,如果有的话则回滚如果正常的话,提交.
如果指行到中间某部分,忽然断电等情况,我想服务器下次重启时会将这次没执行完的事务自动回滚吧.
YiYanXiYin 2004-08-04
  • 打赏
  • 举报
回复
wcccc1(fdfd) 对了,也许你说在点子上了,但我还是有点怀疑,为什么sqlserver2005中要弄一个try...catch来捕捉错误呢?
YiYanXiYin 2004-07-29
  • 打赏
  • 举报
回复
没有用,出错后,后面的所有代码所有处理都是白费
zjcxc 元老 2004-07-28
  • 打赏
  • 举报
回复
riseerror? 是raiserror吧? 这个是产生错误用的
YiYanXiYin 2004-07-27
  • 打赏
  • 举报
回复
insert into t2 select 'abc'
就是呀,这句后面的任何语句好像都执行不了
zjcxc 元老 2004-07-27
  • 打赏
  • 举报
回复
SQL的错误处理太弱了一点,遇到这种错误,SQL语句无法执行下去.:
insert into t2 select 'abc'
zjcxc 元老 2004-07-27
  • 打赏
  • 举报
回复
begin tran
create table t1(a int);
if @@error <>0 begin
select '执行失败'
rollback tran
return
end
create table t2(b int);
if @@error <>0 begin
select '执行失败'
rollback tran
return
end

insert into t1 select 1000;
if @@error <>0 begin
select '执行失败'
rollback tran
return
end

select * from t1
if @@error <>0 begin
select '执行失败'
rollback tran
return
end

insert into t2 select 'abc'
if @@error <>0 begin
select '执行失败'
rollback tran
return
end

select * from t2
if @@error =0 begin
select '执行成功'
commit tran
end else begin
select '执行失败'
rollback tran
end

victorycyz 2004-07-27
  • 打赏
  • 举报
回复

用raiserror呀。
viptiger 2004-07-27
  • 打赏
  • 举报
回复
begin tran
create table t1(a int);
create table t2(b int);
insert into t1 select 1000;
select * from t1
insert into t2 select 'abc'
select * from t2
if @@error =0 begin
select '执行成功'
commit tran
end else begin
select '执行失败'
rollback tran
print '执行失败'
end
aht1979 2004-07-27
  • 打赏
  • 举报
回复
begin tran
create table t1(a int);
create table t2(b int);
insert into t1 select 1000;
select * from t1
insert into t2 select 'abc'
select * from t2
if @@error =0 begin
print('执行成功')
commit tran
end else begin
print( '执行失败')
rollback tran
end

YiYanXiYin 2004-07-27
  • 打赏
  • 举报
回复
sqlserver里面有riseerror吗?举个例子来看看
sisijianjian 2004-07-27
  • 打赏
  • 举报
回复
这样还是显示不出来'执行失败'啊
还是要用riseerror好一点吧
内容概要:本文针对电热综合能源系统在高比例可再生能源接入背景下所面临的不确定性调度问题,提出了一种数据驱动的两阶段分布鲁棒优化方法。该方法结合VMD-SSA-LSSVM等先进预测技术提升风电、负荷等输入数据的预测精度,并构建以1-范数和∞-范数约束不确定变量概率分布的鲁棒优化模型,有效刻画其波动范围,增强系统调度的鲁棒性与经济性。研究提供了完整的Matlab代码实现,涵盖不确定性建模、两阶段优化架构设计及求解流程,便于读者复现实验并深入理解模型机制。; 适合人群:具备一定电力系统、优化理论及Matlab编程基础的研究生、科研人员及相关工程技术人员。; 使用场景及目标:①解决电热综合能源系统在不确定性环境下的优化调度问题;②学习数据驱动与分布鲁棒优化相结合的建模方法;③掌握1-范数和∞-范数在构建不确定集的理论意义与实现技巧;④通过Matlab代码实践提升对两阶段鲁棒优化求解流程的理解与应用能力。; 阅读建议:建议读者结合文提供的Matlab代码逐模块学习,重点关注不确定性集合构建、两阶段优化结构设计与求解器调用等关键环节。可配合网盘的补充资料与案例进行拓展学习,以深化对综合能源系统优化调度问题的研究与实践水平。
内容概要:本文研究了一种计及自适应预测修正的微电网模型预测控制(MPC)优化调度方法,旨在提升微电网在可再生能源出力不确定性和负荷波动背景下的调度精度与运行稳定性。研究构建了完整的MPC框架,融合滚动优化与实时反馈校正机制,通过动态修正预测误差实现发电计划的持续优化调整。采用Python语言实现了算法模型,并在包含风电、光伏、储能等多种分布式能源的微电网系统进行验证,结果表明该方法在降低运行成本、提高能源利用效率和增强系统鲁棒性方面具有显著优势。; 适合人群:具备一定电力系统基础知识和Python编程能力的研究生、科研人员及从事微电网优化调度相关工作的工程技术人员。; 使用场景及目标:①解决微电网因风光发电预测偏差引发的调度失衡问题;②实现多时间尺度下的动态优化调度,提升系统对不确定性的适应能力;③为模型预测控制(MPC)在综合能源系统的实际应用提供可复现的代码实例与技术参考。; 阅读建议:建议读者结合提供的Python代码逐模块理解MPC的实现流程,重点关注预测模型构建、滚动时域优化机制与反馈修正策略的设计逻辑,并可通过调整参数或引入新的系统约束进行拓展实验,以深化对微电网优化调度机制的理解。

34,874

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧