La consulta en sí está bien, el problema es la forma en que usas sprintf(), debería ser algo como esto:
Código PHP:
Ver original$updateSQL = sprintf("UPDATE articulos SET stock=stock - %d WHERE codarticulo='%s'", GetSQLValueString($_POST['cantidad'], "int"),
GetSQLValueString($_POST['codarticulo'], "int"));
Traslado el tema a la sección de PHP.