请问在存储过程中如何控制事务以及返回SQL的执行情况?(最好能给个例子) [问题点数:200分,结帖人chjcwl]

Bbs2
本版专家分:252
结帖率 100%
Bbs4
本版专家分:1248
Bbs5
本版专家分:2372
Bbs9
本版专家分:72344
Blank
进士 2002年 总版技术专家分年内排行榜第七
Blank
银牌 2002年9月 总版技术专家分月排行榜第二
2002年8月 总版技术专家分月排行榜第二
Blank
红花 2002年10月 MS-SQL Server大版内专家分月排行榜第一
2002年9月 MS-SQL Server大版内专家分月排行榜第一
2002年8月 MS-SQL Server大版内专家分月排行榜第一
2002年6月 MS-SQL Server大版内专家分月排行榜第一
2002年5月 MS-SQL Server大版内专家分月排行榜第一
Blank
黄花 2002年7月 MS-SQL Server大版内专家分月排行榜第二
Bbs4
本版专家分:1304
Blank
黄花 2001年11月 Web 开发大版内专家分月排行榜第二
2001年10月 Web 开发大版内专家分月排行榜第二
Blank
蓝花 2001年7月 Web 开发大版内专家分月排行榜第三
Bbs2
本版专家分:252
Bbs2
本版专家分:355
Bbs6
本版专家分:5664
Bbs3
本版专家分:560
Bbs2
本版专家分:252
Bbs8
本版专家分:37624
Bbs1
本版专家分:85
Bbs1
本版专家分:37
存储过程中如何返回结果集
我想在java中调用一个<em>存储</em>过程,就是一个查询而已,但不知怎么写,似乎有点麻烦,要用到游标啊。rnrn查询是这样的:rncreate or replace procedure query_city_by_id(p_id in number ) isrn rn rnbeginrn select * from system.city where cid=p_id;rnrnrnend;
如何返回存储过程中的值
比如有个<em>存储</em>过程:proc_addrn里面结构大概是这样的rnbeginrn begin tranrn begin tryrn 相关添加语句rn commitrn end tryrn begin catchrn beginrn rollbackrn raiserror('执行错误',16,1)rn endrn end catchrnendrn想问的是用OUTPUT<em>返回</em>一个值应该写在哪里<em>如何</em>写?rn我用ASP写的,<em>如何</em>去拿<em>返回</em>出来的值rn
存储过程中如何提前返回
<em>存储</em><em>过程中</em><em>如何</em>提前<em>返回</em>?rnrn因为我没有看到类似GOTO的语句,但是有个LEAVE,好像LEAVE是离开一个标号。他能提前<em>返回</em><em>存储</em>过程吗?rnrn譬如:rnrnBEGINrnrnrn SELECT * FROM ..rn IF ROW_COUNT() = 1 THENrn LEAVE;rnrnrn END IF;rnrnENDrnrn这样有什么影响?rnrnrnrnrnrn=======================================================rnrn第2个问题,<em>存储</em>过程不提交会不会自动回滚?这样写有什么问题?rn<em>存储</em>过程用手动COMMIT吗?rnrnrnrnBEGINrnrn INSERT ....rnrn SELECT * FROM ..rn IF ROW_COUNT() = 1 THENrn # 出错了,那么刚才那个INSERT会不会自动回滚?rn # 注意这个<em>存储</em>过程不是在一个<em>事务</em>中。rn END IF;rnrn #这里是否需要手动COMMIT;rn COMMIT;rnENDrnrnrn3)这个问题有点诡异rnrnrnBEGINrn #如果设置了rnSET AUTOCOMMIT = 0;rnrn #但是退出的时候没有COMMIT,也没有设置AUTOCOMMIT;会有什么问题?rn # my<em>sql</em>会自动恢复AUTOCOMMIT吗?rnrnrnENDrnrnrnrn4) <em>事务</em>有头无尾怎么办?rnrnBEGINrn START TRANSACTION;rnrn # do somethingrnrn # 离开的时候我没有调用COMMIT;那么数据便没有写入rn # 那么如果我也没有调用ROLLBACK;数据也会自动回滚吧??!!rnrnrn # 那么此时我再调用START TRANSACTION + COMMIT;会不会连第一次的数据也会写入,因为第一次我并没有调用ROLLBACK?rn # 如果我在另外的<em>存储</em><em>过程中</em>调用START TRANSACTION + COMMIT;又会有什么不一样的情况?、 rn # 是不是离开<em>存储</em>过程的时候,会自动结束当前<em>事务</em>???rnENDrnrnrnrnrn非常感谢!rnrnrnrn
存储过程中如何返回数据集?
在<em>存储</em><em>过程中</em><em>如何</em><em>返回</em>数据集?(好像只有用到游标才能解决,但是具体的实现方法怎么写呢?)有<em>例子</em>代码更好.谢谢!
存储过程中如何返回小数?
如:rnCREATE PROCEDURE [dbo].[ps_test]rnASrnBEGINrnDECLARE @result decimal(18, 2)rnset @result =5.21rnreturn @resultrnENDrnrn执行后:rn<em>返回</em>的是:5rnrn系统自动定义了 @return_value int 整型,我试过加:@Return_value decimal(18, 2) output,还是不行rn<em>请问</em>怎样可以显示小数5.21呢?
存储过程中事务应用
<em>存储</em>过程里的<em>事务</em>操作: create or replace procedure pr_mypro2(p_a in varchar2,p_b in varchar2,p_count out number) temp varchar2(1000); /**//*定义临时
存储过程中事务的问题
我有以下<em>存储</em>过程:rncreate procedure proc_aarnrn@a varchar(10).rn@b varchar(10)rn@ret intrnas rnrnbegin tranrnrndeclare @id intrnselect @id=id from arnselect @id = @id + 1rninsert into b(a,id) values(@a,@id)rnif @error<>0rnbeginrn rollback tranrn set @ret=-1rn returnrnendrnrnupdate a set id=@idrnif @error<>0rnbeginrn rollback tranrn set @ret=-1rn returnrnendrnrncommit tranrnset @ret=1rnreturnrnrn客户端调用此<em>存储</em>过程的频率很高的,现在两张表a和b总是死锁rnrnrn
存储过程中事务
<em>存储</em><em>过程中</em>的<em>事务</em>: --传入一个金额,自动的从转到,写成<em>存储</em>过程 CREATE PROC usp_ZZ @mon INT =0 AS BEGIN DECLARE @sumerr INT =0---默认值必须加 BEGIN TRANSACTION UPDATE dbo.bank SET balance =balance-@mon WHERE cId='0001...
存储过程中使用事务
为什么80%的码农都做不了架构师?&gt;&gt;&gt; ...
存储过程中添加事务
--存在就删除 IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[NAME]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ProcName] GO --还有一种删除的写法 IF EXISTS(SELECT * FROM sysobjec...
存储过程中使用事务
beginrn rninsert into user values(id,username,userpwd,now(),0);rninsert into userdetails values(id,'',0,now(),0,'');rninsert into userbbs values(id,0,0,0,0,0,now(),'','',0,0);rninsert into userworkexperience values(now(),'',id);rnrnendrnrn需要在多张表中建立新纪录.但是不能出错.rn找了很多资料但是语句写出来都报错.rn没有办法只有请各位大大指教了.
存储过程中事务的使用方法
ALTER PROCEDURE dbo.PR_AddDPT     @dptName varchar(50),    @dptWorker int    AS    SET NOCOUNT ON         begin tran --<em>事务</em>处理开始        declare @insertError int,@updateError int        insert into [dpt
存储过程中事务的使用
<em>存储</em><em>过程中</em><em>事务</em>的使用 <em>存储</em><em>过程中</em><em>事务</em>的使用方法 收藏 ALTER PROCEDURE dbo.PR_AddDPT      @dptName varchar(50),    @dptWorker int    AS    SET NOCOUNT ON         begin tran --<em>事务</em>处理开始        declare @insertEr
关于存储过程中事务
小弟有一事不明 rn比如我有一 商品表 内有字段 id,商品名称,数量rn我想再一次提交操作中向该表内插入 n条数据 rn比如 香蕉 5个,苹果 3个,橘子 2个rn这样的<em>存储</em>过程<em>如何</em>写 是1条语句根据插入的条数执行n次(在.net环境下加入同一<em>事务</em>中),rn还是说可以写成一个<em>存储</em>过程 传进去类似2维数组类型的参数 在<em>存储</em>过程内部循环插入(同一<em>事务</em>中)rn有没有高手帮写下这2种情况的 .cs页代码 和 <em>存储</em>过程代码 或是有更好更快的方法 本人小菜鸟先谢谢了 rn
存储过程中事务问题
<em>存储</em>过程1rncreate proc procuder1 rn as rn insert into tb values(1,1) rn return @@error rn go rn rn rn --调用的处理代码 rn declare @re int rn set @re=0 rn rn open Employee_Cursor rn rn Begin Tran rn FETCH NEXT FROM Employee_Cursor rn WHILE @@FETCH_STATUS = 0 and @re = 0 rn BEGIN rn Exec @re=procuder2 rn FETCH NEXT FROM Employee_Cursor rn END rn if @re<>0 --如果调用出错,则回滚<em>事务</em> rn begin rn raiserror('出错',1,16) rn rollback tran rn end rn else rn commit tran rn CLOSE Employee_Cursor rn DEALLOCATE Employee_Cursorrnrnprocuder2 rnrn游标中的执行:rnexec procuder3rnrn rnrnprocuder3rnrn游标中的执行:rnexec procuder4rnrnrnprocuder4rnrn有游标语句rnrnrn问题:rn1,在procuder2,procuder3,procuder3中的游标中都有insert,update,delete语句rn2,如果不用<em>事务</em>,是不是会效率很低,就是执行速度会很慢?rn3,仅仅是在procuder1上加<em>事务</em>好呢,还是在每一个<em>存储</em>中加一个<em>事务</em>啊?rnrn请大家指点一下rnrnrnrn
存储过程中实现事务
在图书馆管理系统中系统管理员可以进行的操作有:借、还、添加、删除、修改图书或添加、删除、修改读者等,很多的操作都涉及到多个表的进行,我们一定要保持数据的一致性。 如“删除读者”操作,会在读者表(READER)中进行读者的删除,该读者删除后,借书表(READER-BOOK)也没有必要再保留该读者的借书记录,也应删除。我们可以用下面的储存过程来实现<em>事务</em>的处理: CREATE PROCEDURE upd
SQLserver存储过程中事务
在数据库编程中,<em>事务</em>是经常需要用到的技术。在.net平台上,<em>事务</em>处理是非常好用的,但是在Sql Server数据库的<em>存储</em><em>过程中</em><em>如何</em>使用<em>事务</em>来完成数据的批量操作呢?解决方案如下:    Declare @id int    BEGIN TRANSACTION          Insert into xxxxxTable(f1,f2)values(@a,@b)
SQLSERVER 存储过程中事务
1 CREATE PROCEDURE ProcedureNamme 2 AS 3 BEGIN 4 SET NOCOUNT ON; 5 6 BEGIN TRY---------------------开始捕捉异常 7 BEGIN TRAN------------------开始<em>事务</em> 8 UPDATE A SET...
存储过程中运用事务
在<em>存储</em><em>过程中</em>运用<em>事务</em>create database studyuse study create table peopleInfor  --用户信息表(ID int primary key identity(1001,1),--主键自动增长name1 nvarchar(30),--用户名YMoney   money default(0)--卡上剩余金额)create table peopleIn
存储过程中使用事务
Create PROCEDURE UpdateWanjun@UserName nvarchar(500),@UserPassword nvarchar(500),@ReturnVal int outputAS      --Set XAcT_ABORT ON  Begin Transaction T      Update admins set UserPassword = @UserPasswo
存储过程中事务实现
一直以为<em>存储</em>过程会自动实现<em>事务</em>操作,其实不然。<em>存储</em>过程只是提供的<em>事务</em>操作的支持。要实现<em>事务</em>操作,还得自己实现。  基本上方法有两个:       SET XACT_ABORT 指定当 Transact-SQL 语句产生运行时错误时,Microsoft&reg; SQL Server&#8482; 是否自动回滚当前<em>事务</em>。 语法        SET XACT_ABO
事务存储过程中的应用
set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgoALTER PROCEDURE [dbo].[usertest]@username nvarchar(1000),@pwd int ASdeclare @newid intBEGINif(@pwd>0)begin begin transaction Insert into usertable (usernam
存储过程中事务
有一<em>存储</em>过程rnrncreate proc aaarn参数...rnasrnSQL语句1rnSQL语句2rnSQL语句3rngornrn现在里面写的3个语句没在同一事物中 若是改成同一<em>事务</em>中该<em>如何</em>写
存储过程中的TRY和事务
<em>存储</em>过程里的 TRY和<em>事务</em> 咋写呢。杂结合捏。小弟初学。大家指点下
存储过程中事务处理问题
//string posttitle = this.TextBox1.Text;rn string postbody = this.FreeTextBox1.Text;rn string postcreatedate = DateTime.Now.ToString();rn int id =Convert.ToInt32( Request.QueryString["id"]);rn if (Session["ID"] != null)rn rn string postusername = Session["ID"].ToString();rn SqlConnection mycon = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["connString"]);rnrn mycon.Open();rn SqlTransaction st = mycon.BeginTransaction();rn SqlCommand com = mycon.CreateCommand();rn com.Transaction = st;rn tryrn //调用title<em>存储</em>过程rn com.CommandText = "inputtitle";//[color=#FF0000]直接写<em>存储</em>过程不知道有没有错误[/color]rn com.CommandType = CommandType.StoredProcedure;rn SqlParameter paramname = new SqlParameter("@name", SqlDbType.NVarChar);rn paramname.Value = this.TextBox1.Text;rn com.Parameters.Add(paramname);rnrn SqlParameter parambody = new SqlParameter("@body", SqlDbType.NText);rn parambody.Value = this.FreeTextBox1.Text; ;rn com.Parameters.Add(parambody);rnrn SqlParameter paramusername = new SqlParameter("@username", SqlDbType.NVarChar);rn paramusername.Value = Session["ID"].ToString();rn com.Parameters.Add(paramusername);rnrn SqlParameter paramboardid = new SqlParameter("@boardid", SqlDbType.Int);rn paramboardid.Value = Convert.ToInt32(Request.QueryString["id"]);rn com.Parameters.Add(paramboardid);rnrn SqlParameter paramcreatdate = new SqlParameter("@creatdate", SqlDbType.DateTime);rn paramcreatdate.Value = DateTime.Now;rn com.Parameters.Add(paramcreatdate);rn com.ExecuteNonQuery();rnrn // 调用indtitle<em>存储</em>过程rn com.CommandText = "inputindtitle";rn com.CommandType = CommandType.StoredProcedure;rnrn SqlParameter paramindboardid = new SqlParameter("@boardid", SqlDbType.Int);rn paramindboardid.Value = Convert.ToInt32(Request.QueryString["id"]);rn com.Parameters.Add(paramindboardid);rnrn SqlParameter paramindtitlename = new SqlParameter("@indtitlename",SqlDbType.NVarChar);rn paramindtitlename.Value = this.TextBox1.Text;rn com.Parameters.Add(paramindtitlename);rnrn SqlParameter paramindtitlecreatedate = new SqlParameter("@indtitlecreatedate",SqlDbType.DateTime);rn paramindtitlecreatedate.Value = DateTime.Now;rn com.Parameters.Add(paramindtitlecreatedate);rnrn SqlParameter paramindtitleusername = new SqlParameter("@indtitleusername",SqlDbType.NVarChar);rn paramindtitleusername.Value = Session["ID"].ToString();rn com.Parameters.Add(paramindtitleusername);rnrn SqlParameter paramindtitlerviewnum = new SqlParameter("@indtitlerviewnum",SqlDbType.Int);rn paramindtitlerviewnum.Value = 0;rn com.Parameters.Add(paramindtitlerviewnum);rnrn SqlParameter paramindtitlereplynum = new SqlParameter("@indtitlereplynum",SqlDbType.Int);rn paramindtitlereplynum.Value = 0;rn com.Parameters.Add(paramindtitlereplynum);rnrn SqlParameter paramlastreplyname = new SqlParameter("@lastreplyname",SqlDbType.NVarChar);rn paramlastreplyname.Value = Session["ID"].ToString();rn com.Parameters.Add(paramlastreplyname);rnrn SqlParameter paramlastreplycreatedate = new SqlParameter("@lastreplycreatedate",SqlDbType.DateTime);rn paramlastreplycreatedate.Value = DateTime.Now;rn com.Parameters.Add(paramlastreplycreatedate);rnrn com.ExecuteNonQuery();rn st.Commit();rn Response.Write(Mytool.Alert("发表成功"));rnrn rn catch (Exception error)rn rn st.Rollback();rn rn com.Dispose();rn mycon.Close();rn运行程序时没反应,参数都对rn com.CommandText = "inputindtitle";rn com.CommandType = CommandType.StoredProcedure;rninputindtitle是<em>存储</em>过程名称,<em>请问</em>能不能这样写的,程序有没有问题。rn
存储过程中事务
<em>存储</em>过程为什么要判断<em>事务</em>呢,比如下面rnBEGIN TRANSACTION 开启<em>事务</em>rnCOMMIT TRANSACTION 提交<em>事务</em> rnROLLBACK TRANSACTION 回滚<em>事务</em>rn设置<em>事务</em>有什么用吗??rn提交<em>事务</em>是不是就是<em>存储</em>过程执行完毕的意思呢?
sql T_sql存储过程中使用事务Trans 例子
在这里我们主要是介绍SQL Server 中<em>事务</em>在<em>存储</em><em>过程中</em>的应用,首先我们先来了解下什么是<em>事务</em>。(1):<em>事务</em>(Transaction)<em>事务</em>是恢复和并发<em>控制</em>的基本单位。 是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。通过<em>事务</em>,SQL Server能将逻辑相关的一组操作绑定在一起,以便服务器保持数据的完整性。 (2):<em>事务</em>通常是以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK结束。 COM
vb如何与mysql建立连接,最好能给例子
还有:vb能与多少种数据库相连?那种数据库的字段名允许汉字?
BCB如何实现多重继承。最好能给例子
分数不是问题
如何调用PowerPoint进行ppt播放?最好能给例子
我的邮箱rayanywhere@gmail.com 先谢谢各位大虾了
请问存储过程中使用事务出现的问题
<em>存储</em>过程很简单:rnCREATE PROCEDURE [dbo].[sp_Del_Process]rnASrnBEGINrn Begin Transaction Trn delete from tssWF_NodeDefinition --故意让这一行报错rn IF @@Error <> 0rn Beginrn Print '111' rn RollBack Transaction Trn Endrn Elsern print '222'rn Commit Transaction TrnENDrnrn报的错误如下:rnrn消息 208,级别 16,状态 1,过程 sp_Del_Process,第 16 行rn对象名 'tssWF_NodeDefinition' 无效。rn消息 266,级别 16,状态 2,过程 sp_Del_Process,第 24 行rnEXECUTE 后的<em>事务</em>计数指出缺少了 COMMIT 或 ROLLBACK TRANSACTION 语句。原计数 = 0,当前计数 = 1。
SQL SERVER存储过程中使用事务
<em>存储</em>过程格式: CREATE PROCEDURE YourProcedure AS BEGIN SET NOCOUNT ON; BEGIN TRY---------------------开始捕捉异常 BEIN TRAN------------------开始<em>事务</em> UPDATE A SET A.names = B.name...
求助SQL:存储过程中事务太慢
我有一<em>存储</em>过程,如果在<em>存储</em><em>过程中</em>增加<em>事务</em>。那运行时间超过2-3分钟。如果把<em>事务</em>注释掉,运行时间在4秒左右。<em>请问</em>有什么方式可以处理?rn<em>存储</em>过程功能用于计算某仓库本月物料平均价,然后更新到 出库单表。(有好几个表更新单价)rnrn
sql server 存储过程中,调用事务 tran
Sql Server 2005/2008中提供了begin tran,commit tran和rollback tran来使用<em>事务</em>。 begin tran表示开始<em>事务</em>, commit tran表示提交<em>事务</em>, rollback tran表示回滚事物 EXEC TEST_PROC '文综','包括历史,地理,政治','政治','文综的一门'CREATE PROCE...
存储过程中返回结果集】
如题:一个<em>存储</em><em>过程中</em>,最后有一个Select语句,现在想将Select到的结果集<em>返回</em>到前台应用程序方,不知有何方法rnrn现在用的方法:rnset rst=cn.excute(“exec pro1 23”)rnrn其中rst为结果集rncn为数据库联接rnpro1为<em>存储</em>过程名rnrn以上,请能人相助!rnrnrnrnrn
存储过程中返回字符串
小弟在<em>存储</em><em>过程中</em>,要实现<em>返回</em>字符串时出现问题,特来请教!rnrnVB程序中的代码如下:rnrn dim strMessage as string=""rn Dim dbCheckPalmInfo As New ClsPalmDatabasern Dim cmmCheckPalmInfo As SqlClient.SqlCommandrn dbCheckPalmInfo.Open()rn Dim sp_Message As SqlClient.SqlParameterrn cmmCheckPalmInfo = New SqlClient.SqlCommand("ups_CountMaterialVolume", dbCheckPalmInfo.<em>sql</em>Conn)rn cmmCheckPalmInfo.CommandType = CommandType.StoredProcedurern sp_Message = cmmCheckPalmInfo.Parameters.Add("@strMessage", SqlDbType.NVarChar, 255)rnrn sp_Message.Direction = ParameterDirection.Outputrnrn cmmCheckPalmInfo.ExecuteNonQuery()rn strMessage = cmmCheckPalmInfo.Parameters("@strMessage").Value.ToStringrnrn<em>存储</em>过程代码如下:rnCREATE PROCEDURE dbo.ups_CountMaterialVolume rn(rn @strMessage varchar(255) outputrn)rn ASrn set @strMessage='sadfsdafas'rn return (@strMessage))rnrnGOrnrn运行到VB代码的 rn strMessage = cmmCheckPalmInfo.Parameters("@strMessage").Value.ToStringrn时出现:rn "将varchar 值 'sadfsdafas' 转换为int 的列时发生语法错误."rnrn该<em>如何</em>解决啊???rn
请问如何写需求分析...能给例子吗...
<em>请问</em><em>如何</em>写需求分析...
请问,在存储过程中是否能定义函数?能否给个例子
<em>请问</em>,在<em>存储</em><em>过程中</em>是否能定义函数?能否给个<em>例子</em>?rnrn多谢了
请问存储过程中能不能返回游标呢?
还是只能在包中实现<em>返回</em>游标呢?rnrn谢谢,
ASP里的事务怎么做,最好能给例子,谢谢
ASP里的<em>事务</em>怎么做,<em>最好</em><em>能给</em><em>例子</em>,谢谢
怎样在Sql返回存储过程中的结果集
大侠们怎样在<em>存储</em><em>过程中</em><em>返回</em>几个select集中的一个?rn几个结果集的结构都是不一样的。rn在线等。
关于存储过程中事务如何开启
关于<em>存储</em><em>过程中</em><em>事务</em><em>如何</em>开启,还有就是<em>如何</em>在<em>存储</em><em>过程中</em><em>如何</em>获取到更新语句响应的行数。rn能否给个小小的<em>例子</em>。谢谢各位大牛!
在Oracle的存储过程中如何实现事务
即在出错时<em>如何</em>回滚<em>事务</em>?rn请给出示例代码,多谢
orcal存储过程中如何添加事务
orcal<em>存储</em><em>过程中</em><em>如何</em>添加<em>事务</em>?
如何事务放在存储过程中执行
<em>如何</em>把<em>事务</em>放在<em>存储</em><em>过程中</em>执行!rn<em>最好</em>给一段代码提示!rn谢谢!rn
在delphi中如何实现数据库的事务提交与回滚?(最好能给例子
在delphi中<em>如何</em>实现数据库的<em>事务</em>提交与回滚?(<em>最好</em><em>能给</em>个<em>例子</em>)rnrn那种 将<em>sql</em>text写很长的办法不要
请问如何监测数据库sql执行情况
比如 页面打开jsp 就看得到执行了哪些<em>sql</em>语句 耗时多少 rnrnrn服务器用的是tomcat 数据库用的是sybase 用dbartisan可以吗
存储过程中事务实现(转贴)
基本上方法有两个:      SET XACT_ABORT指定当 Transact-SQL 语句产生运行时错误时,Microsoft&reg; SQL Server&#8482; 是否自动回滚当前<em>事务</em>。语法SET XACT_ABORT { ON | OFF }注释       当 SET XACT_ABORT 为 ON 时,如果 Transact-SQL 语句产生运行     时 错误,整个<em>事务</em>将
存储过程中使用事务的方法
 1、<em>存储</em><em>过程中</em>使用<em>事务</em>的简单语法 在<em>存储</em><em>过程中</em>使用<em>事务</em>时非常重要的,使用数据可以保持数据的关联完整性,在Sql server<em>存储</em><em>过程中</em>使用<em>事务</em>也很简单,用一个<em>例子</em>来说明它的语法格式: Create Procedure MyProcedure ( @Param1 nvarchar(10), @param2 nvarchar
存储过程中用到事务的问题???
CREATE PROCEDURE DeleteSmallClassrn@smallclassid intrnrn ASrnbegin transactionrn declare @err intrn set @err=0rn delete from SmallClass where SmallClassID = @smallclassid rn if(@@error <>0)rn set @err = @@errorrn delete from News where SmallClassName=(select SmallClassName from SmallClass where SmallClassID=@smallclassid )rn if(@@error <>0)rn set @err=@@errorrn if @err<>0rn beginrn rollback transactionrn endrn elsern beginrn commit transactionrn endrnrn<em>请问</em>有什么错误啊!!!!
存储过程中事务未启用
<em>存储</em><em>过程中</em>:rnbegin tranrn delete from XX where yy='1'rn delete from ZZ where aa=(select [A] from [B] where C=5)rn ... rncommit tranrnrn结果执行后rndelete from XX where yy='1'--执行成功了rndelete from ZZ where aa=(select [A] from [B] where C=5)子查询不止<em>返回</em>一个 删除出错rnrn这样<em>事务</em>是不是没有生效? 还有“子查询不止<em>返回</em>一个 ”删除错误?rn
请教:存储过程中事务控制问题.
有<em>存储</em>过程A ,在其开始处有 begin tran tA ,在结尾处根据语句<em>执行情况</em>有 rollback tran tA 或是 commint tran tArn单独执行<em>存储</em>过程A 没有问题.rnrn现有<em>存储</em>过程B , 其中的<em>事务</em>tB 和A 中的tA 的结构类似.rn不同的是在B<em>过程中</em>的 begin tran tB 和 rollback tran tB 或 commint tran tB中间有 exec A.rn执行过程B 总是提示在A<em>过程中</em>rollback tran tA <em>事务</em>找不到什么tA 保存点...rnrn这种情况要怎么调整呢?rn
关于存储过程中事务处理问题
我在SQL中建立了这样一个<em>存储</em>过程:rnCREATE PROCEDURE ABCrnASrnBEGIN TRANSACTIONrn .....rnCOMMIT TRANSACTIONrnGOrn问题:rn如果有若干个人同时调用此<em>存储</em>过程,那么<em>事务</em>处理之间的语句是不是一个人结束了<em>事务</em>处理另一个人才开始<em>事务</em>处理,也就是说不可能有人同时开始<em>事务</em>处理。是这样吗?如果不是,怎样才能实现一个人结束了<em>事务</em>处理另一个人才开始<em>事务</em>处理?
存储过程中怎么用事务
rn现有一个<em>存储</em>过程,里面依次插入了3张的表的数据,现在希望都能够执行成功才插入,中间有任何错误都不执行任何操作,怎么办?
SQLServer存储过程中事务的使用
1 create proc usp_Stock 2 @GoodsId int, 3 @Number int, 4 @StockPrice money, 5 @SupplierId int, 6 @EmpId int, 7 @StockUnit varchar(50), 8 @StockDate datetime, 9 @TotalMoney mo...
SQLServer存储过程中事务的创建
直接上代码 if (exists(select * from sys.objects where name='JayJayToTest')) drop proc JayJayToTest go create proc JayJayToTest @GiveMoney int, @UserName nvarchar(20) as beginset nocount on; ...
db-在存储过程中使用事务
--判断proc_TransInProc<em>存储</em>过程是否存在,如果存在将它删除 if exists(select name from sysobjects where name='proc_TransInProc'and type='p') drop proc proc_TransInProc --删除<em>存储</em>过程 GO create procedure proc_TransInProc as d...
存储过程中的 SET XACT_ABORT ON 和事务
在<em>存储</em><em>过程中</em>写SET XACT_ABORT ON 有什么用? SET XACT_ABORT ON是设置<em>事务</em>回滚的! 当为ON时,如果你<em>存储</em>中的某个地方出了问题,整个<em>事务</em>中的语句都会回滚 为OFF时,只回滚错误的地方 use sales --指定数据库 go alter table T_UserInfoTwo add constraint ck_id check
关于存储过程中 使用事务
测试数据rn[code=SQL]rnCREATE TABLE EMPLOYEE (EMPID INT, FNAME VARCHAR(50),LNAME VARCHAR(50))rnINSERT INTO EMPLOYEE (EMPID, FNAME, LNAME) VALUES (2021115, 'JIM', 'KENNEDY') rn[/code]rnrn测试<em>存储</em>过程rn[code=SQL]rnUSE [master]rnGOrn/****** Object: StoredProcedure [dbo].[UpdateWanjun] Script Date: 08/03/2011 16:01:46 ******/rnSET ANSI_NULLS ONrnGOrnSET QUOTED_IDENTIFIER ONrnGOrnALTER PROCEDURE [dbo].[UpdateWanjun]rn@ReturnVal int outputrnAS rn rn Begin Transaction T rn Update employee set empid='a202' where fname ='JIM'; rn set @ReturnVal=isnull(@@Rowcount ,0);rn IF @@Error <> 0rn Begin rn RollBack Transaction Trn set @ReturnVal=-1;rn RETURN -1;rn Endrn Elsern Begin rn COMMIT Transaction T rn set @ReturnVal=0;rn RETURN 0;rn Endrn rn[/code]rnrn调用语句rn[code=SQL]rnrn declare @ReturnVal int;rnexec UpdateWanjun @ReturnVal;rnselect @ReturnValrnrnrn[/code]rnrnrn问题1:rn 期望: 如果出错的话就给@ReturnVal赋-1成功赋0rn 结果 : <em>存储</em>过程的<em>返回</em>值@ReturnVal一直是NULL
【Asp.Net】 在存储过程中使用事务
参考链接:http://www.cnblogs.com/yourancao520/archive/2012/02/23/2364366.html 转载于:https://blog.51cto.com/acadia627/1908182
存储过程中能用事务吗?
beginrn insert into yezhu values (@cardid,@cardname,@fahaotime,@yj,@zhujie)rn select @Rc=@@errorrn if @Rc<>0rn return @RCrn insert into jiaofei values (@cardid,@time1,@time2)rn select @Rc=@@errorrn if @Rc<>0 rn return @Rcrn insert into tempdaka1 (Card_id) values (@cardid)rn if @Rc<>0 rn return @Rcrnendrn这个我的<em>存储</em>过程,该怎么加<em>事务</em>呢
关于存储过程中事务
rn比如在<em>存储</em>过程里面有两句updaternrn begin transactionrn select *..................rn update .............rn update ............rn if @@error=0rn commit transactionrn elsern rollback transactionrn当第二个update 出错了,第一个还执行?rn 不rollback?
存储过程中怎样使用事务
我是这样写的:rnCREATE PROC user_regrn(rn @UserName Varchar(35),rn @UserPassword Char(16),rn @UserCname Varchar(35),rn @UserEname Varchar(90),rn @UserFace Varchar(50),rn @UserAddress Varchar(120),rn @UserTel Varchar(30),rn @UserHandset Varchar(30),rn @UserFax Varchar(30),rn @UserPost Varchar(20),rn @UserQq Varchar(20),rn @UserIcq Varchar(20),rn @UserMsn Varchar(120),rn @UserMail Varchar(120),rn @UserUrl Varchar(120),rn @UserLocus Varchar(30),rn @RetExists Char(1) OUTPUTrn)rnASrnIF EXISTS(SELECT user_name FROM eda_userrn WHERE user_name=@UserName)rn SELECT @RetExists='1'rnELSErnBEGINrn BEGIN TRANSACTIONrn SELECT @RetExists='0'rn INSERT INTO eda_userrn (rn user_name,rn user_cname,rn user_ename,rn user_face,rn user_address,rn user_tel,rn user_handset,rn user_fax,rn user_post,rn user_qq,rn user_icq,rn user_msn,rn user_mail,rn user_url,rn user_locusrn )rn VALUESrn (rn @UserName,rn @UserCname,rn @UserEname,rn @UserFace,rn @UserAddress,rn @UserTel,rn @UserHandset,rn @UserFax,rn @UserPost,rn @UserQq,rn @UserIcq,rn @UserMsn,rn @UserMail,rn @UserUrl,rn @UserLocusrn )rnrn Declare @maxid Intrn SELECT @maxid=MAX(user_id) FROM eda_userrn rn INSERT INTO eda_loginrn (rn login_id,rn login_passwordrn )rn VALUESrn (rn @maxid,rn @UserPasswordrn )rnrn COMMIT TRANSACTION rnENDrnrnGOrnrnrn我在往eda_login表中插入值的时候故意让其出错,但eda_user表中的数据就是不回滚,到底是怎么回事?望请指点一二,谢谢!rn
求方法存储过程中事务
我新建了个<em>存储</em>过程,通过游标读取数据库表中数据,然后循环更新,中间涉及一次嵌套循环,为了预防出错我应该怎么加<em>事务</em>rn循环语句rnrn循环1rnbegin rn...rn更新表1rn循环2rn beginrn ...rn 更新表2rn endrnendrn循环1更新表1,循环2更新表2,循环2是根据表1标识更新表2,两个表中都可能存在多条数据,为了确保数据准确,我应该怎么添加<em>事务</em>和<em>事务</em>节点呢
SqlServer存储过程中使用事务
create proc pro_GetProTrans @GoodsId int, @Number int, @StockPrice money, @SupplierId int, @EmpId int, @StockUnit varchar(50), @StockDate datetime, @TotalMoney money , @ActMoney money , @baseId int, @
Sqlserver 存储过程中使用事务
ALTER PROCEDURE [dbo].[Purchase_Create]@Docid varchar(100), ---- 搜索唯一编号@Title varchar(100), ---- 求购标题@Province varchar(20), ---- 来自区域省@City varchar(50), ---- 来自区域市@Area varchar(50),...
Mysql 存储过程中应用事务
My<em>sql</em> <em>存储</em><em>过程中</em>应用<em>事务</em>                             依旧是my<em>sql</em>,<em>事务</em>这个东西相信大家都耳熟能详了吧,多表操作必不可少。下面来介绍下用navicat在my<em>sql</em>的<em>存储</em><em>过程中</em>应用<em>事务</em>怎么写:          就是这么简单,但这还仅仅是最基本的应用,边用边学,边积累。
SQLServer 存储过程中使用事务
<em>存储</em>过程SQL: create proc ***** @GoodsId int, @Number int, @StockPrice money, @SupplierId int, @EmpId int, @StockUnit varchar(50), @StockDate datetime, @TotalMoney money , @ActMoney money , @baseId int, @
怎样在存储过程中使用事务
[code=SQL] BEGIN TRYrn BEGIN TRANSACTION;rnrn COMMIT TRANSACTION;rn END TRYrn BEGIN CATCHrn GOTO LABEL_CATCH;rn END CATCH;rnrn RETURN 0;rnrnLABEL_CATCH:rn ROLLBACK TRANSACTION;rn RETURN -1;rn END[/code]rnrn我在<em>存储</em><em>过程中</em>使用上面的形式,结果 return -1 时程序收到错误消息,说运行<em>存储</em>过程时<em>事务</em>嵌套级别为1,<em>事务</em><em>返回</em>时嵌套级别为0,不匹配。rn然后我为<em>事务</em>加上了名称:“BEGIN TRANSACTION Test; ROLLBACK TRANSACTION Test;”。结果又收到了“无法回滚Test。找不到该名称的<em>事务</em>或保存点”的错误消息。rnrnrnMSDN上提到了这个错误,但没有给出解决方法:[url=http://msdn.microsoft.com/zh-cn/library/ms187844%28v=SQL.90%29.aspx][/url]
关于六种排序整型、浮点型、字符型、字符串型随机生成、手动输入下载
用VC++写的关于六种排序,对整型、浮点型、字符型、字符串型排序,分别对其进行随机生成、手动输入 相关下载链接:[url=//download.csdn.net/download/guoke2010_2011/2188473?utm_source=bbsseo]//download.csdn.net/download/guoke2010_2011/2188473?utm_source=bbsseo[/url]
小区物业管理详细设计报告下载
自己看吧 挺好的 挺实用 小区物业管理详细设计报告 相关下载链接:[url=//download.csdn.net/download/sunshine591025/2922448?utm_source=bbsseo]//download.csdn.net/download/sunshine591025/2922448?utm_source=bbsseo[/url]
计算机组成原理课件下载
计算机系统概论 计算机中的数据表示 计算机的运算方法 存储系统 指令系统 系统总线 中央处理器 输入、输出系统 相关下载链接:[url=//download.csdn.net/download/jh1991/3976546?utm_source=bbsseo]//download.csdn.net/download/jh1991/3976546?utm_source=bbsseo[/url]
相关热词 c# gdi 占用内存 c#中遍历字典 c#控制台模拟dos c# 斜率 最小二乘法 c#进程延迟 c# mysql完整项目 c# grid 总行数 c# web浏览器插件 c# xml 生成xsd c# 操作sql视图
我们是很有底线的