SQL 增加, 删除父子级带事务的存储过程
if (object_id('proc_DeleteFile', 'P') is not null)
drop proc proc_DeleteFile
go
create PROCEDURE proc_DeleteFile
(
@id nvarchar(40) , --删除的文件ID
@pid nvarchar(40) ,--项目Id
@comment nvarchar(3800) --想历史记录表插入数据
)
AS
begin
BEGIN TRANSACTION--开始事务
DECLARE @errorSun INT --定义错误计数器
SET @errorSun=0 --没错为0
DELETE FROM LPProjectDiscuss WHERE ElementID=CONVERT(uniqueidentifier, @id) ;--事务操作SQL语句删除讨论信息
SET @errorSun=@errorSun+@@ERROR --累计是否有错
DELETE FROM LPProjectFile WHERE LPProjectfileID=CONVERT(uniqueidentifier, @id); --事务操作SQL语句删除文件信息
SET @errorSun=@errorSun+@@ERROR --累计是否有错
insert into LPProjectHistory (HistoryID ,ID, [NewName], ProjectID, NewComment, UpdateTime)values
(
NEWID(),CONVERT(uniqueidentifier, @id), @comment, CONVERT(uniqueidentifier ,@pid),@comment,getdate()
)
SET @errorSun=@errorSun+@@ERROR --累计是否有错
IF @errorSun<>0
BEGIN
PRINT '有错误,回滚'
ROLLBACK TRANSACTION--事务回滚语句
END
ELSE
BEGIN
PRINT '成功,提交'
COMMIT TRANSACTION--事务提交语句
END
end
//--------------------------------------------------增加事务----------------------------------------------------------------------------------------------------------
if (object_id('proc_SaveDiscuss', 'P') is not null)
drop proc proc_SaveDiscuss
go
create PROCEDURE proc_SaveDiscuss
(
@LPProjectDiscussID nvarchar(36),--要插入的guid
@DiscussName nvarchar(100), --讨论名称
@DiscussContent nvarchar(2000),
@ElementID nvarchar(36),
@UserID nvarchar(36),
@Status int,
@CreateTime datetime
)
AS
begin
BEGIN TRANSACTION--开始事务
DECLARE @errorSun INT --定义错误计数器
SET @errorSun=0 --没错为0
DECLARE @Read nvarchar(15)
set @Read ='增加了讨论'
INSERT INTO LPProjectDiscuss
( LPProjectDiscussID,
DiscussName,
DiscussContent,
ElementID,
UserID,
[Status],
CreateTime )
VALUES
(
CONVERT(uniqueidentifier,
@LPProjectDiscussID),
@DiscussName,@DiscussContent,
CONVERT(uniqueidentifier,@ElementID),
CONVERT(uniqueidentifier ,@UserID),
@Status,
@CreateTime
)
SET @errorSun=@errorSun+@@ERROR --累计是否有错
insert into LPProjectHistory
(
HistoryID ,
ID,
[NewName],
ProjectID,
NewComment,
UpdateTime,
Mark,
UserID,
CreateTime,
[Type]
)
values
(
NEWID(),
CONVERT(uniqueidentifier, @LPProjectDiscussID),
@DiscussName,
CONVERT(uniqueidentifier,@ElementID),
@Read+ @DiscussContent,
( SELECT dateadd(ms,0,DATEADD(dd, DATEDIFF(dd,0,getdate()), 0))),
CONVERT(int, 0),
CONVERT(uniqueidentifier ,@UserID),
(select getdate()),
CONVERT(int, 0)
)
SET @errorSun=@errorSun+@@ERROR --累计是否有错
IF @errorSun<>0
BEGIN
PRINT '有错误,回滚'
ROLLBACK TRANSACTION--事务回滚语句
END
ELSE
BEGIN
PRINT '成功,提交'
COMMIT TRANSACTION--事务提交语句
END
end
exec proc_SaveDiscuss '193446A7-62B4-A418-DB38-02BB2800F9C2', '今天回家看病','打针','AF0DB0BE-C0EA-5F54-AA2B-79EBBE4C3080','FFBD2905-28E3-0347-FDC4-F94993D1C326',0, '2013-08-09 17:54:39.233'
-------------------------------------------------------------------------------修改的存储过程-------------------------------------------------------------------------
SQL 增加, 删除父子级带事务的存储过程的更多相关文章
- SQL Server 2008 存储过程,带事务的存储过程(创建存储过程,删除存储过程,修改存储过
SQL Server 2008 存储过程,带事务的存储过程(创建存储过程,删除存储过程,修改存储过 存储过程 创建存储过程 use pubs --pubs为数据库 go create proc ...
- SQL Server 存储过程,带事务的存储过程(创建存储过程,删除存储过程,修改存储过
存储过程 创建存储过程 use pubs --pubs为数据库 go create procedure MyPRO --procedure为创建存储过程关键字,也可以简写proc,MyPRO为存储过程 ...
- SQL Server中带事务的存储过程简单举例
先来看一个概念: 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完整地执行,要么完全地不执行.那么在存储过程里添加事务,则可以保证该事务里的所 ...
- sql server 删除所有表、视图、存储过程
如果由于外键约束删除table失败,则先删除所有约束: --/第1步**********删除所有表的外键约束*************************/ DECLARE c1 curs ...
- sql快速删除所用表,视图,存储过程
[http://www.th7.cn/db/mssql/2011-07-07/10127.shtml#userconsent#] 删除用户表 .select 'DROP TABLE '+name fr ...
- Sql增加,删除,修改列
1. 查看约束条件 - MySQL: SELECT * FROM information_schema.`TABLE_CONSTRAINTS` where table_name = 'book'; - ...
- SQL语句复制父子级表数据
原始表Book数据如下: id为自增长整数,text为内容,pid为上级IDid text pid1 第一层 02 数学 03 第二层 14 语文 15 第三层 36 英语 3…………………… 现要求 ...
- SQL Server 删除数据库所有表和所有存储过程
场景: SQL Server中,需要删除所有表或所有存储过程时,手动的方式只能逐个进行删除,耗个人时间,所以想弄个语句来实现这样的需求. 如果由于外键约束删除table失败,则先删除所有约束: - ...
- SQL 增加或删除一列
SQL 增加或删除一列 alter table tablename drop column columnname;alter table tabelname add columnname varcha ...
随机推荐
- CSU1217
就跟数字出现奇数次道理是一样的,将一个数转化为2进制后找出现奇数次个1的位置,最后将其输出来便是出现奇数次的数 #include <cstdio> int main() { int n,a ...
- 算法(1):查找&排序
算法(Algorithm):一个计算过程,解决问题的方法 程序 = 数据结构+算法 时间复杂度: 当算法过程中出现循环折半的时候,复杂度式子中会出现 O(logn) 时间复杂度小结: 1. 时间复杂度 ...
- 前端开发:JQuery(1)
JQuery DOM文档加载的步骤: 1. 解析HTML结构: 2. 加载外部脚本和样式: 3. 解析并执行脚本代码: 4. DOM树构建完成: 5. 加载图片等外部文件: 6. 页面加载完成: JS ...
- 2018牛客网暑期ACM多校训练营(第一场)D图同构,J
链接:https://www.nowcoder.com/acm/contest/139/D来源:牛客网 同构图:假设G=(V,E)和G1=(V1,E1)是两个图,如果存在一个双射m:V→V1,使得对所 ...
- n个点中求任意两点组成斜率的最大值
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1100 首先按x坐标排序,然后相邻的三个点A,B,C 组成的三条直线必然有 ...
- HDU——1498 50 years, 50 colors
50 years, 50 colors Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- element-ui自定义table表头
场景描述: 这个需求的场景很简单,表头自定义居中显示 <el-table-column show-overflow-tooltip prop="telephone" labe ...
- how to read openstack code: Neutron architecture
今天这一章节非常重要.我们知道neutron是一个非常复杂的系统,由很多组件构成.研究这样一个复杂的系统,正确的顺序应该是现在宏观上对其整体结构有所了解,然后再由针对性的对其组件进行深入了解.本章要做 ...
- pageContext 获取Session 为null原因
问题:在J2EE应用中.发如今自己定义标签中取不到session: HttpSession session = pageContext.getSession(); 你会发现session的值可能是空的 ...
- JavaSE入门学习5:Java基础语法之keyword,标识符,凝视,常量和变量
一keyword keyword概述:Java语言中有一些具有特殊用途的词被称为keyword.keyword对Java的编译器有着特殊的意义.在程 序中应用时一定要谨慎. keyword特点:组成k ...