存储过程的问题

psigw1314 2012-07-05 03:00:25

CREATE PROCEDURE TestAAA
AS
BEGIN
SET NOCOUNT ON;
begin transaction
declare @errorSum int
insert into TB_B(ID,NAME,[TIME])
SELECT ID,NAME,[TIME] from TB_A
where [TIME]<GETDATE()-1
set @errorSum+=@@error
delete from TB_A
where [TIME]<GETDATE()-1
set @errorSum+=@@error
if @errorSum>0
begin
print 'error'
rollback transaction
end
else
begin
print 'ok'
commit transaction
end
END
GO


这个存储过程的第一句SQL执行了,为什么delete那句就不执行了呢,求指教.
...全文
44 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
天-笑 2012-07-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
delete 语句执行了, 但是条件不对了...我要删除前一个礼拜的数据怎么弄.
[/Quote]



delete from TB_A
where [TIME] <= dateadd(day,-7,getdate()) --删除7天前数据
  • 打赏
  • 举报
回复

CREATE PROCEDURE TestAAA
AS
BEGIN
SET NOCOUNT ON;
begin transaction
declare @errorSum int
insert into TB_B(ID,NAME,[TIME])
SELECT ID,NAME,[TIME] from TB_A
where [TIME]<dateadd(dd,-1,GETDATE())
set @errorSum+=@@error
delete from TB_A
where [TIME] between dateadd(dd,-7,GETDATE()) and dateadd(dd,-1,GETDATE())
set @errorSum+=@@error
if @errorSum>0
begin
print 'error'
rollback transaction
end
else
begin
print 'ok'
commit transaction
end
END
GO

--前一个礼拜的数据,也就是说从今天往前推七天的数据?
  • 打赏
  • 举报
回复

CREATE PROCEDURE TestAAA
AS
BEGIN
SET NOCOUNT ON;
begin transaction
declare @errorSum int
insert into TB_B(ID,NAME,[TIME])
SELECT ID,NAME,[TIME] from TB_A
where [TIME]<dateadd(dd,-1,GETDATE())
set @errorSum+=@@error
delete from TB_A
where [TIME]<dateadd(dd,-1,GETDATE())
set @errorSum+=@@error
if @errorSum>0
begin
print 'error'
rollback transaction
end
else
begin
print 'ok'
commit transaction
end
END
GO
psigw1314 2012-07-05
  • 打赏
  • 举报
回复
delete 语句执行了, 但是条件不对了...我要删除前一个礼拜的数据怎么弄.
天-笑 2012-07-05
  • 打赏
  • 举报
回复

--试试
CREATE PROCEDURE TestAAA
AS
BEGIN
SET NOCOUNT ON;
begin transaction
declare @errorSum int

insert into TB_B(ID,NAME,[TIME])
SELECT ID,NAME,[TIME] from TB_A
where [TIME]<DATEDIFF(DAY,-1,GETDATE())

set @errorSum =@errorSum + @@error

delete from TB_A
where [TIME]<DATEDIFF(DAY,-1,GETDATE())

set @errorSum = @errorSum + @@error

if @errorSum>0
begin
print 'error'
rollback transaction
end
else
begin
print 'ok'
commit transaction
end
END
GO

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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