2
下午好, 我有一個回滾的問題... Treger最初是用來調用過程和過程被觸發回滾,但它是... 現在我試圖做從觸發回退,也不...PROBLEMA SQL SERVER ROLLBACK觸發器
連接代碼和錯誤
感謝您的幫助
USE [Desarrollo_Pruebas]
GO
/****** Object: Trigger [dbo].[Prueba_tre] Script Date: 10/30/2012 17:02:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[Prueba_tre]
ON [dbo].[Cliente]
FOR INSERT
AS
BEGIN
SET NOCOUNT ON;
begin try
BEGIN TRAN t1
SAVE TRAN t1
INSERT INTO Articulo (Articulo_Codigo, Articulo_Descripcion, Valor_unitario, Categoria_id, msg) VALUES (1040,'EURECA',15000,5,'')
COMMIT
--raiserror ('Test error',16,1)
end try
begin catch
ROLLBACK TRAN t1
SELECT ERROR_NUMBER() AS ERROR_NUMBER, ERROR_MESSAGE() AS ERROR_MESSAGE;
end catch
--SET NOCOUNT ON;
--exec Prueba CLIENTE_ID;
END
消息3931,級別16,狀態1,過程Prueba_tre,行21 當前事務不能被提交併且不能被回滾到保存點。回滾整個交易。
表是
的想法是,當我插入到客戶的產品與插入更新.. 在本次交易的最終需要從控制檯
CREATE TABLE Articulo
(
Articulo_Codigo int not null primary key
, Articulo_Descripcion varchar (100)
, Valor_unitario int
, Categoria_Id int not null constraint fk_Categoria references Categoria (CATEGORIA_ID)
)
CREATE TABLE Cliente
(
CLIENTE_ID int not null primary key
, CLIENTE_PRIMER_NOMBRE varchar(50)
, CLIENTE_SEGUNDO_NOMBRE varchar(50)
, CLIENTE_PRIMER_APELLI varchar(50)
, CLIENTE_SEGUNDO_APELLI varchar(50)
, CLIENTE_DIRECCION varchar(90)
, CLIENTE_TELEFONO int
, CLIENTE_CIUDAD varchar(50)
)
保存交易丟掉東西。看看這個http://msdn.microsoft.com/en-us/library/ms188378.aspx – AJP