diff --git a/spring-batch-core/pom.xml b/spring-batch-core/pom.xml
index fd57e796d..3fdc23b02 100644
--- a/spring-batch-core/pom.xml
+++ b/spring-batch-core/pom.xml
@@ -251,7 +251,7 @@
-
+
@@ -264,7 +264,7 @@
-
+
diff --git a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-drop-sqlserver.sql b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-drop-sqlserver.sql
new file mode 100644
index 000000000..eca911f1d
--- /dev/null
+++ b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-drop-sqlserver.sql
@@ -0,0 +1,12 @@
+-- Autogenerated: do not edit this file
+
+DROP TABLE BATCH_STEP_EXECUTION_CONTEXT ;
+DROP TABLE BATCH_JOB_EXECUTION_CONTEXT ;
+DROP TABLE BATCH_STEP_EXECUTION ;
+DROP TABLE BATCH_JOB_EXECUTION ;
+DROP TABLE BATCH_JOB_PARAMS ;
+DROP TABLE BATCH_JOB_INSTANCE ;
+
+DROP TABLE BATCH_STEP_EXECUTION_SEQ ;
+DROP TABLE BATCH_JOB_EXECUTION_SEQ ;
+DROP TABLE BATCH_JOB_SEQ ;
diff --git a/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-drop-sybase.sql b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-drop-sybase.sql
new file mode 100644
index 000000000..eca911f1d
--- /dev/null
+++ b/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-drop-sybase.sql
@@ -0,0 +1,12 @@
+-- Autogenerated: do not edit this file
+
+DROP TABLE BATCH_STEP_EXECUTION_CONTEXT ;
+DROP TABLE BATCH_JOB_EXECUTION_CONTEXT ;
+DROP TABLE BATCH_STEP_EXECUTION ;
+DROP TABLE BATCH_JOB_EXECUTION ;
+DROP TABLE BATCH_JOB_PARAMS ;
+DROP TABLE BATCH_JOB_INSTANCE ;
+
+DROP TABLE BATCH_STEP_EXECUTION_SEQ ;
+DROP TABLE BATCH_JOB_EXECUTION_SEQ ;
+DROP TABLE BATCH_JOB_SEQ ;
diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/SqlServerPagingQueryProvider.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/SqlServerPagingQueryProvider.java
index 403c029fd..918604d65 100644
--- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/SqlServerPagingQueryProvider.java
+++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/support/SqlServerPagingQueryProvider.java
@@ -17,9 +17,10 @@
package org.springframework.batch.item.database.support;
/**
- * Sql Server implementation of a {@link org.springframework.batch.item.database.PagingQueryProvider} using
+ * Sql Server implementation of a
+ * {@link org.springframework.batch.item.database.PagingQueryProvider} using
* database specific features.
- *
+ *
* @author Thomas Risberg
* @since 2.0
*/
@@ -35,6 +36,11 @@ public class SqlServerPagingQueryProvider extends SqlWindowingPagingQueryProvide
return SqlPagingQueryUtils.generateTopSqlQuery(this, true, buildTopClause(pageSize));
}
+ @Override
+ protected Object getSubQueryAlias() {
+ return "AS TMP_SUB ";
+ }
+
private String buildTopClause(int pageSize) {
return new StringBuilder().append("TOP ").append(pageSize).toString();
}
diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/support/SqlServerPagingQueryProviderTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/support/SqlServerPagingQueryProviderTests.java
index d2d28605b..dd0f3864f 100644
--- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/support/SqlServerPagingQueryProviderTests.java
+++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/support/SqlServerPagingQueryProviderTests.java
@@ -29,14 +29,14 @@ public class SqlServerPagingQueryProviderTests extends AbstractSqlPagingQueryPro
@Test @Override
public void testGenerateJumpToItemQuery() {
- String sql = "SELECT SORT_KEY FROM ( SELECT id AS SORT_KEY, ROW_NUMBER() OVER (ORDER BY id ASC) AS ROW_NUMBER FROM foo WHERE bar = 1) WHERE ROW_NUMBER = 100";
+ String sql = "SELECT SORT_KEY FROM ( SELECT id AS SORT_KEY, ROW_NUMBER() OVER (ORDER BY id ASC) AS ROW_NUMBER FROM foo WHERE bar = 1) AS TMP_SUB WHERE ROW_NUMBER = 100";
String s = pagingQueryProvider.generateJumpToItemQuery(145, pageSize);
Assert.assertEquals("", sql, s);
}
@Test @Override
public void testGenerateJumpToItemQueryForFirstPage() {
- String sql = "SELECT SORT_KEY FROM ( SELECT id AS SORT_KEY, ROW_NUMBER() OVER (ORDER BY id ASC) AS ROW_NUMBER FROM foo WHERE bar = 1) WHERE ROW_NUMBER = 1";
+ String sql = "SELECT SORT_KEY FROM ( SELECT id AS SORT_KEY, ROW_NUMBER() OVER (ORDER BY id ASC) AS ROW_NUMBER FROM foo WHERE bar = 1) AS TMP_SUB WHERE ROW_NUMBER = 1";
String s = pagingQueryProvider.generateJumpToItemQuery(45, pageSize);
Assert.assertEquals("", sql, s);
}
diff --git a/spring-batch-samples/pom.xml b/spring-batch-samples/pom.xml
index c651dc5cb..455b0e84c 100644
--- a/spring-batch-samples/pom.xml
+++ b/spring-batch-samples/pom.xml
@@ -93,6 +93,12 @@
5.1.6
runtime
+
+ net.sourceforge.jtds
+ jtds
+ 1.2.4
+ runtime
+
hsqldb
hsqldb
diff --git a/spring-batch-samples/src/main/resources/batch-sqlserver.properties b/spring-batch-samples/src/main/resources/batch-sqlserver.properties
index 4d60f4a74..8c20d2511 100644
--- a/spring-batch-samples/src/main/resources/batch-sqlserver.properties
+++ b/spring-batch-samples/src/main/resources/batch-sqlserver.properties
@@ -1,18 +1,17 @@
# Placeholders batch.*
# for MS SQLServer:
batch.jdbc.driver=net.sourceforge.jtds.jdbc.Driver
-batch.jdbc.url=jdbc:jtds:sqlserver://dbhost:1433;databaseName=test
-batch.jdbc.user=spring
-batch.jdbc.password=spring
-batch.schema=
-batch.jndi.name=
-batch.naming.factory.initial=
-batch.naming.provider.url=
+batch.jdbc.url=jdbc:jtds:sqlserver://localhost:1433;instance=SQLEXPRESS
+batch.jdbc.user=sa
+batch.jdbc.password=sa
+batch.jdbc.testWhileIdle=false
+batch.jdbc.validationQuery=
+batch.drop.script=/org/springframework/batch/core/schema-drop-sqlserver.sql
batch.schema.script=/org/springframework/batch/core/schema-sqlserver.sql
batch.business.schema.script=business-schema-sqlserver.sql
+batch.data.source.init=true
batch.database.incrementer.class=org.springframework.jdbc.support.incrementer.SqlServerMaxValueIncrementer
batch.lob.handler.class=org.springframework.jdbc.support.lob.DefaultLobHandler
-
-# Bean Properties for override
-# when not using sequences:
-incrementerParent.columnName=ID
+batch.database.incrementer.parent=columnIncrementerParent
+batch.grid.size=2
+batch.verify.cursor.position=true
diff --git a/spring-batch-samples/src/main/resources/business-schema-sqlserver.sql b/spring-batch-samples/src/main/resources/business-schema-sqlserver.sql
index 3ce5065e9..df575a107 100644
--- a/spring-batch-samples/src/main/resources/business-schema-sqlserver.sql
+++ b/spring-batch-samples/src/main/resources/business-schema-sqlserver.sql
@@ -12,12 +12,11 @@ DROP TABLE ERROR_LOG ;
-- Autogenerated: do not edit this file
-CREATE TABLE CUSTOMER_SEQ (ID BIGINT IDENTITY);
-INSERT INTO CUSTOMER_SEQ (ID) values (5);
-CREATE TABLE BATCH_STAGING_SEQ (ID BIGINT IDENTITY);
-INSERT INTO BATCH_STAGING_SEQ (ID) values (0);
-CREATE TABLE TRADE_SEQ (ID BIGINT IDENTITY);
-INSERT INTO TRADE_SEQ (ID) values (0);
+CREATE TABLE CUSTOMER_SEQ (ID BIGINT IDENTITY);
+SET IDENTITY_INSERT CUSTOMER_SEQ ON;
+INSERT INTO CUSTOMER_SEQ (ID) values (5);
+CREATE TABLE BATCH_STAGING_SEQ (ID BIGINT IDENTITY);
+CREATE TABLE TRADE_SEQ (ID BIGINT IDENTITY);
CREATE TABLE BATCH_STAGING (
ID BIGINT NOT NULL PRIMARY KEY ,
diff --git a/spring-batch-samples/src/main/resources/jobs/iosample/jdbcPaging.xml b/spring-batch-samples/src/main/resources/jobs/iosample/jdbcPaging.xml
index 4ecff3485..f6cc9b80f 100644
--- a/spring-batch-samples/src/main/resources/jobs/iosample/jdbcPaging.xml
+++ b/spring-batch-samples/src/main/resources/jobs/iosample/jdbcPaging.xml
@@ -22,7 +22,7 @@
-
+