create proc DemandInfoInsert
@Type bigint,
@DemandSort bigint,
@Title varchar(100),
@detail text,
@EndDate datetime,
@AddUser bigint,
@IsShow int,
@AddDate datetime,
@ServeSort bigint,
@TransitSort bigint,
@GoodsSort bigint,
@GoodsWeight decimal,
@Unit varchar(20),
@PackExplain varchar(64),
@WillPrice money,
@StartPlace varchar(100),
@FinishPlace varchar(100),
@ConsignmentDate datetime,
@LinkMan varchar(8),
@LinkAddress varchar(100),
@PostNum varchar(8),
@LinkPhone varchar(20),
@Email varchar(50),
@Fax varchar(20),
@IsType bigint
AS
Begin
begin transaction AddDemandInfo
declare @DemandInfoID int
insert into DemandInfo (Type,DemandSort,Title,detail,EndDate,AddUser,IsShow,AddDate) values(@Type,@DemandSort,@Title,@detail,@EndDate,@AddUser,@IsShow,@AddDate)
set @DemandInfoID = scope_identity()
insert into DemandSubInfo (DemandID,ServeSort,TransitSort,GoodsSort,GoodsWeight,Unit,PackExplain,WillPrice,StartPlace,FinishPlace,ConsignmentDate) values(@DemandInfoID,@ServeSort,@TransitSort,@GoodsSort,@GoodsWeight,@Unit,@PackExplain,@WillPrice,@StartPlace,@FinishPlace,@ConsignmentDate)
insert into TradeLinkInfo (LinkMan,LinkAddress,PostNum,LinkPhone,Email,Fax,PyTradeID,IsType) values(@LinkMan,@LinkAddress,@PostNum,@LinkPhone,@Email,@Fax,@DemandInfoID,@IsType)
if @@Error<>0
begin
Rollback transaction AddDemandInfo
end
commit transaction AddDemandInfo
End
GO
exec DemandInfoInsert 1,2,'dd','ss','2008-08-14',1,0,'2008-09-14',2,3,1,122,'吨','ddd',112.02,'武汉','上海','2008-09-16','zf','dfasfdaf','12355656','23423424','dj@123.com','2123123123',1
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection conn;
SqlCommand cmd1, cmd2;
SqlTransaction tra;
conn = new SqlConnection("server=.;database=test;uid=sa;pwd=123");
conn.Open();
tra = conn.BeginTransaction();//开始事务
cmd1 = new SqlCommand("update Test set StuName='佳儿' where StuScore=111", conn);
cmd2 = new SqlCommand("update Test set StuName='fdsafdsafdsfdsafsfsdadsadsadfsafsfsfdf' where StuScore=222", conn);
try
{
cmd1.ExecuteNonQuery();//此句可以成功执行
cmd2.ExecuteNonQuery();//此句故意让其执行失败
tra.Commit();//无异常,提交事务(两句执行都有效)
Response.Write("<script>alert('执行成功')</script>");
}
catch
{
tra.Rollback();//出现异常,回滚事务(两句执行都无效)
Response.Write("<script>alert('执行失败')</script>");
}
finally
{
conn.Close();
}
}
分享到:
相关推荐
在 Delphi 这样的集成开发环境中,与 SQL Server 数据库进行交互时,事务处理尤为重要。本篇将深入探讨 Delphi 配合 SQL Server 实现事务处理的相关知识点,并通过实例来演示如何在 Delphi 应用程序中运用。 首先,...
然而,LINQ to SQL的功能远不止这些,它还支持更复杂的查询、事务处理、存储过程调用等。虽然LINQ to SQL在.NET框架的最新版本中已被Entity Framework所取代,但了解它的基本工作原理对于理解ORM(对象关系映射)的...
在本实验中,主题聚焦于SQL事务,这是数据库管理系统中执行操作的重要概念,尤其是在并发控制和数据一致性方面。事务是数据库操作的基本单元,确保一系列数据库操作要么全部完成,要么全部不完成,以此来维护数据的...
在SQL Server中,事务是确保数据一致性的重要机制,特别是在存储过程中。存储过程是一组预编译的SQL语句,可以在数据库中被多次调用,提高了效率并降低了网络流量。本篇将详细介绍如何在SQL Server存储过程中使用...
4. **在.NET框架下的C#中使用SQL事务** 在C#程序中,可以使用ADO.NET组件与SQL Server交互,实现事务控制。例如,可以使用`System.Data.SqlClient.SqlConnection`的`BeginTransaction()`方法开启一个事务,`Commit...
例如,下面是一个使用C#操纵数据库事务的例子: ```csharp using System; using System.Data.SqlClient; public class DatabaseOperations { public void PerformTransaction() { string connectionString = ...
此语句表示创建名为`TestDB`的数据库,并设置了主数据文件的初始大小为50MB,事务日志文件的初始大小为10MB。 更进一步地,还可以指定多个数据文件和日志文件: ```sql CREATE DATABASE TestDB ON MORESPACE = 50,...
在SQL Server中,还有许多其他高级特性,如视图、存储过程、触发器、事务处理等,这些都是进阶学习的内容。通过不断的练习和应用,你可以熟练掌握SQL,为你的数据库管理工作打下坚实基础。 这个"sql学习经典"压缩包...
**JDBC连接SQL Server例子详解**...这个例子覆盖了JDBC连接SQL Server的基本流程,但实际开发中还需要考虑异常处理、连接池管理、事务控制等高级话题。理解这些概念对于任何使用Java进行数据库操作的开发者都至关重要。
本资源“C#连接SQL经典例子”提供了一些关键的知识点,主要涉及如何使用C#与SQL数据库进行交互,包括登陆验证、数据提交和删除操作。下面将详细介绍这些知识点。 1. **C#与SQL Server的连接**: C#通过ADO.NET库与...
在SQL Server中,存储过程是一种预编译的SQL语句集合,它...了解了这些基础知识后,你可以根据具体的存储过程内容来进一步学习和应用,如参数的传递、事务控制、异常处理等,以更好地利用SQL Server的存储过程功能。
SQL Server中的视图、事务和索引是数据库管理中的核心概念,它们各自扮演着重要的角色,帮助用户更高效、安全地操作和查询数据。 视图,作为数据库的一种抽象,是基于一个或多个表的SELECT查询结果集的逻辑表示。在...
本教程将基于提供的"java连接sql server数据库例子"来深入探讨这一主题。 首先,Java通过JDBC(Java Database Connectivity)API与SQL Server建立连接。JDBC是Java标准的一部分,它提供了一组接口和类,允许Java...
"经典SQL例子-scott"这个资源是学习SQL的一个宝贵资料,它包含了Oracle数据库中的经典实例。Oracle是全球广泛使用的数据库管理系统之一,其内置的"SCOTT"用户示例数据库提供了丰富的练习场景。 SCOTT是Oracle中的一...
这个"SQL聊天例子"可能包含服务器端和客户端的代码,以及数据库设计和交互的细节。 首先,数据库的设计是关键。通常,一个聊天应用会有一个用户表存储用户信息,另一个消息表存储聊天记录。用户表可能包括ID、...
当我们需要在C#应用程序中与SQL Server进行交互时,通常会用到ADO.NET库,它提供了连接数据库、执行SQL命令、获取结果集等功能。 本文将深入讲解如何使用C#连接SQL Server,并通过一个简单的实例来展示这一过程。 ...
4. **事务处理**:对于涉及多条记录的复杂操作,可以使用`QSqlDatabase::transaction()`, `QSqlDatabase::commit()`和`QSqlDatabase::rollback()`进行事务管理,确保数据的一致性。 5. **错误处理**:通过`...
在数据库管理中,SQL事务是确保数据完整性和一致性的重要机制。本文主要针对SQL事务进行浅析,特别是如何在实际操作中应用事务,如银行转账问题的处理。事务是一组数据库操作,它们被视为单一的逻辑工作单元,必须...
下面是一个显式事务的例子: ```sql BEGIN TRANSACTION; -- 执行一系列SQL语句 UPDATE Employees SET Salary = Salary * 1.1 WHERE DepartmentID = 1; IF @@ERROR <> 0 BEGIN ROLLBACK TRANSACTION; -- 如果有错误...