• See Remarks in CREATE TABLE https://technet.microsoft.com/en-us/library/ms174979.aspx

    Trigger is executed within the scope where insert is emitted which is essentially scope of PROCEDURE here. And trigger has its own scope. Trigger has access to the outer scope temporary objects.

    Temporary tables are automatically dropped when they go out of scope, so this one created in the trigger is lost when returned to procedure.