Я создал триггер для вставки, и он работает нормально.Это прекрасно создает триггер:
While (exists(Select Id from #temp))
Но запрос на вставку входит в бесконечный цикл.Я использую пока существует для размещения нескольких вставок одновременно.Может кто-нибудь сказать мне, что вызывает бесконечный цикл?
Create Table sqltutorial.Employee
(
Id int,
Name nvarchar(50),
Salary int,
Gender nvarchar(50),
DepartmentId int
)
Alter Trigger sqltutorial.trg_forinsert_Employee
on sqltutorial.Employee
For Insert
As
Begin
print 'Audit Begins'
Declare @Id int, @Name nvarchar(50), @Salary int,
@Gender nvarchar(50), @DepartmentId nvarchar(50)
Declare @AuditText nvarchar(500)
Select *
into #temp
from inserted
While (exists(Select Id from #temp))
Select @Id = Id from #temp
Select
@Id = Id, @Name = Name, @Salary = Salary,
@Gender = Gender, @DepartmentId = DepartmentID
from
#temp
Set @AuditText = 'New Record Inserted With Id='+Cast(@Id As nvarchar(50))+',Name='+@Name+' ,Salary='+CAST(@Salary as nvarchar(50))+' Gender'+@Gender
+' ,Department Id='+@DepartmentId+' on '+CAST((Select GETDATE()) AS nvarchar(50))+' by '+(Select system_user)
Insert into sqltutorial.AuditTrial
values (@AuditText)
Delete from #temp
where Id = @Id
print 'Audit Ends'
End