title: SQL Server row level triggers
body: <p>I tried to achieve row level delete trigger by using cursor but when in trying yo delete the any row from table it tooks so long time.</p>
  
  <p>I could not understand where exactly it stuck.</p>
  
  <pre><code>/****** Object:  Trigger [delStudent]    Script Date: 06/24/2010 12:33:33 ******/
  SET ANSI_NULLS ON
  GO
  SET QUOTED_IDENTIFIER ON
  GO
  
  CREATE TRIGGER [delStudent]
     ON  [dbo].[Student]
     FOR DELETE
  AS 
  DECLARE @Roll as varChar(50); 
  DECLARE @Name as varChar(50);
  DECLARE @Age as int;
  DECLARE @UserName as varChar(50);
  
  SELECT @UserName=SYSTEM_USER;
  
  SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
  BEGIN TRANSACTION;
  
  declare CurD cursor for select roll, Sname, age from deleted    
  
  open CurD
  
  WHILE @@FETCH_STATUS = 0
   BEGIN
      INSERT INTO [dbo].[Audit]
              (roll,sname,age,userId)
      VALUES
              (@Roll,@Name,@Age,@UserName)
   END    
  COMMIT TRANSACTION;
  Close CurD
  DEALLOCATE CurD
  </code></pre>