A rotina criada para inserção de itens aleatórios, mesmo depois da correção que resultava em erro na PK, apresenta erro. Um novo registro deve ser inserido na tabela @LISTAPRODUTOS apenas se já não constar nesta, ou seja, o INSERT deve estar dentro do IF. Embora isso não resulte num erro de execução, causa a inserção de várias vezes o mesmo produto na tabela. Da mesma forma, para uma nova nota, a tabela deve ser dropada, senão um mesmo produto não fará parte de mais de uma nota.