我写个存储过程,目的是在修改类别表中某一个类别名称的同时把原来信息表中有相同名称的信息的类别名称也修改掉,如下:Create PROCEDURE dbo.NewsTypeModify
(
@OriginalTypeName varchar(100),
@NewTypeName varchar(100)
)
AS
begin transaction ThisTrans
update NewsType set TypeName=@NewTypeName where TypeName=@OriginalTypeName
update News set Type=@NewTypeName where Type=@OriginalTypeName
if @@ERROR=0
commit transaction ThisTrans
else
rollback transaction ThisTrans
我在查询分析器里面做测试的时候把News表的名字改掉了,目的就是想让他出错,然后滚回,结果她出现了下面的提示,请问我还有什么地方需要注意的,回答得好,我会再加分(1 行受影响)
消息 207,级别 16,状态 1,过程 NewsTypeModify,第 11 行
列名 'Type' 无效。
消息 266,级别 16,状态 2,过程 NewsTypeModify,第 11 行
EXECUTE 后的事务计数指示缺少了 COMMIT 或 ROLLBACK TRANSACTION 语句。上一计数 = 0,当前计数 = 1。
(
@OriginalTypeName varchar(100),
@NewTypeName varchar(100)
)
AS
begin transaction ThisTrans
update NewsType set TypeName=@NewTypeName where TypeName=@OriginalTypeName
update News set Type=@NewTypeName where Type=@OriginalTypeName
if @@ERROR=0
commit transaction ThisTrans
else
rollback transaction ThisTrans
我在查询分析器里面做测试的时候把News表的名字改掉了,目的就是想让他出错,然后滚回,结果她出现了下面的提示,请问我还有什么地方需要注意的,回答得好,我会再加分(1 行受影响)
消息 207,级别 16,状态 1,过程 NewsTypeModify,第 11 行
列名 'Type' 无效。
消息 266,级别 16,状态 2,过程 NewsTypeModify,第 11 行
EXECUTE 后的事务计数指示缺少了 COMMIT 或 ROLLBACK TRANSACTION 语句。上一计数 = 0,当前计数 = 1。
CREATE TRIGGER TEMP_SC on NewsType
AFTER update
as
update News set Type=I.TypeName from News N,inserted I where I.Type=N.TypeName