I don't see anything in your trigger that would cause it to blocking insert. Do you have any update triggers on the table? If you do, is recursive triggers turned on your database? By default it is off, but you can check using the following query:SELECT is_recursive_triggers_on FROM sys.databases WHERE NAME = 'thedatabasename'
While the following may not help you in solving the problem you should change your code to the following:ALTER TRIGGER [dbo].[Test2]ON [dbo].[Messages] AFTER insertAS BEGINUPDATE smsserver.dbo.messagesSET smsserver.dbo.messages.body = LEFT( smsserver.dbo.messages.body, LEN(smsserver.dbo.messages.body) -3 )FROM smsserver.dbo.messages INNER JOIN INSERTED ON INSERTED.id = smsserver.dbo.messagesEND
It is logically the same if only one row is inserted in an insert statement, but will allow the correct behavior if multiple rows are inserted.