While Schleifen in TSQL funktionieren nicht richtig über Java

Hallo,

ich versuche ein SQL Skript in Microsoft SQL Server 2012 mit der Connection “con = DriverManager.getConnection(“jdbc:dbc:JavaZuSQL”)” folgendermaßen auszuführen:

// Give the input file to Reader
Reader reader = new BufferedReader(new FileReader(aSQLScriptFilePath));
// Execute script
sr.runScript(reader); 

Unter “aSQLScriptFilePath” liegt ein längeres und komplexes Skript. Die Statements habe ich durch ein Semikolon getrennt. Im Grunde funktioniert auch alles gut. Das einzige Problem ist, dass die WHILE Schleifen nicht korrekt ausgeführt werden. Im unteren Beispiel wird beispielsweise nur eine Tabelle mit 386 Zeilen erzeugt anstatt mit 1.000. Alle nachfolgenden Befehle im Skript werden dann aber korrekt ausgeführt (bis auf die restlichen While Schleifen). In Java wird mir auch kein Fehler ausgegeben. Es ist mir völlig rätselhaft woran dies liegt. Wenn ich das Skript aus Microsoft SQL Server 2012 dirket ausführe funktioniert alles ohne Fehler. Ich habe schon sämtliche Timeouts überprüft und es mit executeBatch und execute ausprobiert. Da ist das Problem das gleiche, jedoch führt er dort nach einer halb ausgeführten While Schleife das Skript nicht mehr zu Ende (ohne Fehlermeldung). Setze ich den zweiten Parameter bei ScriptRunner=true (autoCommit), dann bringt das auch nichts. Hat irgendjemand eine Ahnung was das Problem ist? Habe schon keine Ideen mehr. Übrigens: Ich verwende eine Remotedesktop-Verbindung zu Microsoft SQL Server 2012.

Vielen Dank schonmal, ich würde mich sehr über Hilfe freuen

[sql]IF OBJECT_ID(‘test’) IS NOT NULL
DROP TABLE test;

CREATE TABLE test(
spalte1 int PRIMARY KEY NOT NULL);

DECLARE @variable int = 1
WHILE (@variable<=1000)
BEGIN
INSERT INTO test
SELECT @variable
SET @variable=@variable+1
END[/sql]