任何人可以帮助解决简单的T-SQL脚本的问题与触发器板载? 我用很简单的触发将数据从一个表复制到另一个(还有那些表之间没有关系)。 当我尝试后直接触发创建(来自同一个脚本),我得到想要的结果插入在第一次数据,但所有未来的尝试得到了失败,下一个提示:” The current transaction cannot be committed and cannot support operations that write to the log file. Roll back the transaction.
The current transaction cannot be committed and cannot support operations that write to the log file. Roll back the transaction.
“我很困惑是什么意思。 请看下面的触发:
CREATE TRIGGER AuthorInsert ON Author
INSTEAD OF INSERT
AS
BEGIN -- //- 1 -//
--***************** if insert was correct ********************
IF (SELECT COUNT(*) FROM INSERTED) > 0
BEGIN --//- 2 -//
DECLARE @id int, @roleId int;
DECLARE @nameId int, @reestrCodeId int, @passportDataId int, @addressId int, @phoneId int;
SET @nameId = (SELECT INSERTED.NameID FROM INSERTED);
SET @reestrCodeId = (SELECT INSERTED.ReestrCodeID FROM INSERTED);
SET @passportDataId = (SELECT INSERTED.PassportDataID FROM INSERTED);
SET @addressId = (SELECT INSERTED.AddressID FROM INSERTED);
SET @phoneId = (SELECT INSERTED.PhoneID FROM INSERTED);
BEGIN TRY
INSERT INTO Role(RoleName) VALUES('Author');
END TRY
BEGIN CATCH
END CATCH
SET @roleId = (SELECT Role.RoleID FROM Role WHERE Role.RoleName = 'Author');
INSERT INTO Employee(NameID, ReestrCodeID, RoleID, PassportDataID, AddressID, PhoneID)VALUES
(@nameId, @reestrCodeId, @roleId, @passportDataId, @addressId, @phoneId);
SET @id = (SELECT Employee.EmployeID FROM Employee WHERE Employee.EmployeID = @@IDENTITY) + 1;
INSERT INTO Author VALUES(@id, @nameId, @reestrCodeId, @passportDataId, @addressId, @phoneId);
END -- //- 2 -//
END -- //- 1 -//
没有理由张贴表图,因为它是非常原始的(因为我提出上面有没有直接的表之间的关系)明显。 什么错在我的剧本又是什么actyally那奇怪的错误是什么意思?