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 ...
随机推荐
- 九度oj 题目1206:字符串连接
题目1206:字符串连接 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:5117 解决:2373 题目描述: 不借用任何字符串库函数实现无冗余地接受两个字符串,然后把它们无冗余的连接起来 ...
- HDU4463-Outlets,简单最小生成树。1A水过~~
Outlets ...
- Codeforces Round #258 (Div. 2) D
D. Count Good Substrings time limit per test 2 seconds memory limit per test 256 megabytes input sta ...
- 新装mvn建第一个项目报错org.apache.maven.plugins:maven-resources-plugin:2.6
1.第一次创建mvn项目会报maven-resources-plugin-2.6.jar错,原因是mvn无法自动下载这个jar包,多次删除这个目录下的C:\Users\Administrator\.m ...
- 2018/2/14 x-pack的学习
x-pack是什么?它能提供的作用如下,下面描述的这些功能都属于x-park:Shield: 提供对数据的 Password-Protect,以及加密通信.基于角色的权限控制,IP 过滤,审计,可以有 ...
- poj_2524_Ubiquitous Religions_201407211506
Ubiquitous Religions Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 23390 Accepted: ...
- Remove Element(第一种方法参考别人)
Given an array and a value, remove all instances of that value in place and return the new length. T ...
- Eclipse配色方案插件 真漂亮!
原文:https://my.oschina.net/jean/blog/208263 最近发现了一个Eclipse配色方案插件,这回给Eclipse配色太方便了. 插件主页:http://eclips ...
- URAL 题目1553. Caves and Tunnels(Link Cut Tree 改动点权,求两点之间最大)
1553. Caves and Tunnels Time limit: 3.0 second Memory limit: 64 MB After landing on Mars surface, sc ...
- 运行shell脚本报错 '\357\273\277': command not found 解决的方法
1,删除BOM,在vi以下运行以下的命令就可以 :set nobomb 2,原因: 所谓BOM,全称是Byte Order Mark.它是一个Unicode字符,通常出如今文本的开头,用来标识字节序( ...