Na gut, erstens hoert sich das fuer mich an als wuerdest du eine Autoinkrementspalte selbst erzeugen wollen.
Dazu solltest dann vielleicht mal unter Identity Columns in den BOL nachlesen.
Weshalb du bei deinen Statements durchaus unterschiedliche Werte erhalten kannst ist schnell erklaert.
Du hast Zahlen in einer varchar Spalte stehen und vergleichst diese auf unterschiedliche Arten. Beim ersten wird dein var129 implizit nach int gecastet und dann mit der 300000000 und der 399999999 verglichen.
Beim zweiten Beispiel machst du einen alphanumerischen Vergleich.
Dort fallen dir also evtl. auch Werte in den Bereich, die rein numerisch betrachtet dort nicht hingehoeren.
Abgesehen von alledem bekommst du Fehler sobald in der var129 Spalte mal kein nach int castbarer Wert enthalten ist.
Dein Design ist an der Stelle also nuja, sagen wir mal etwas suboptimal.
Falls du wirklich etwas in der Art machen willst, dann mach bitte falls irgendwie moeglich aus var129 eine int, oder bigint Spalte.
Goos