Permettez-moi de répondre avec quelques citations de la documentation de SQL Server.
Conversion des données de caractères
Ainsi, votre varchar est déclaré comme un varchar(1) , et la conversion implicite dans votre SET instruction (d'un littéral de chaîne de longueur 3 à un varchar(1) ) tronque dog à d .