Depende do nível de recursão para gatilhos atualmente definidos no banco de dados.
Se você fizer isto:
SP_CONFIGURE 'nested_triggers',0
GO
RECONFIGURE
GO
Ou isto:
ALTER DATABASE db_name
SET RECURSIVE_TRIGGERS OFF
Esse gatilho acima não será chamado novamente, e você estaria seguro (a menos que você entre em algum tipo de impasse; isso pode ser possível, mas talvez eu esteja errado).
Ainda assim, eu não acho que isso é uma boa ideia. Uma opção melhor seria usar um INSTEAD OF trigger . Dessa forma, você evitaria executar a primeira atualização (manual) no banco de dados. Apenas o definido dentro do gatilho seria executado.
Um gatilho INSTEAD OF INSERT seria assim:
CREATE TRIGGER setDescToUpper ON part_numbers
INSTEAD OF INSERT
AS
BEGIN
INSERT INTO part_numbers (
colA,
colB,
part_description
) SELECT
colA,
colB,
UPPER(part_description)
) FROM
INSERTED
END
GO
Isso automaticamente "substituiria" a instrução INSERT original por esta, com uma chamada UPPER explícita aplicada ao
part_description
campo. Um gatilho INSTEAD OF UPDATE seria semelhante (e eu não aconselho você a criar um único gatilho, mantenha-os separados).
Além disso, isso aborda o comentário @Martin:funciona para inserções/atualizações de várias linhas (seu exemplo não).