diff --git a/symmetric-client/src/main/java/org/jumpmind/symmetric/db/ase/Ase16TriggerTemplate.java b/symmetric-client/src/main/java/org/jumpmind/symmetric/db/ase/Ase16TriggerTemplate.java
new file mode 100644
index 0000000000..b51e7b0603
--- /dev/null
+++ b/symmetric-client/src/main/java/org/jumpmind/symmetric/db/ase/Ase16TriggerTemplate.java
@@ -0,0 +1,36 @@
+/**
+ * Licensed to JumpMind Inc under one or more contributor
+ * license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding
+ * copyright ownership. JumpMind Inc licenses this file
+ * to you under the GNU General Public License, version 3.0 (GPLv3)
+ * (the "License"); you may not use this file except in compliance
+ * with the License.
+ *
+ * You should have received a copy of the GNU General Public License,
+ * version 3.0 (GPLv3) along with this library; if not, see
+ * .
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.jumpmind.symmetric.db.ase;
+
+import org.jumpmind.symmetric.db.ISymmetricDialect;
+
+public class Ase16TriggerTemplate extends AseTriggerTemplate {
+
+ public Ase16TriggerTemplate(ISymmetricDialect symmetricDialect) {
+ super(symmetricDialect);
+ }
+
+ @Override
+ protected String getOrderClause() {
+ return "order 1";
+ }
+
+}
diff --git a/symmetric-client/src/main/java/org/jumpmind/symmetric/db/ase/AseSymmetricDialect.java b/symmetric-client/src/main/java/org/jumpmind/symmetric/db/ase/AseSymmetricDialect.java
index 0fc2745552..7bcbaf425b 100644
--- a/symmetric-client/src/main/java/org/jumpmind/symmetric/db/ase/AseSymmetricDialect.java
+++ b/symmetric-client/src/main/java/org/jumpmind/symmetric/db/ase/AseSymmetricDialect.java
@@ -53,7 +53,11 @@ public class AseSymmetricDialect extends AbstractSymmetricDialect implements ISy
public AseSymmetricDialect(IParameterService parameterService, IDatabasePlatform platform) {
super(parameterService, platform);
- this.triggerTemplate = new AseTriggerTemplate(this);
+ if (getMajorVersion() >= 16) {
+ this.triggerTemplate = new Ase16TriggerTemplate(this);
+ } else {
+ this.triggerTemplate = new AseTriggerTemplate(this);
+ }
}
@Override
diff --git a/symmetric-client/src/main/java/org/jumpmind/symmetric/db/ase/AseTriggerTemplate.java b/symmetric-client/src/main/java/org/jumpmind/symmetric/db/ase/AseTriggerTemplate.java
index ce47deab3e..1a0ef4699e 100644
--- a/symmetric-client/src/main/java/org/jumpmind/symmetric/db/ase/AseTriggerTemplate.java
+++ b/symmetric-client/src/main/java/org/jumpmind/symmetric/db/ase/AseTriggerTemplate.java
@@ -60,7 +60,7 @@ public AseTriggerTemplate(ISymmetricDialect symmetricDialect) {
sqlTemplates = new HashMap();
sqlTemplates.put("insertTriggerTemplate" ,
-"create trigger $(triggerName) on $(schemaName)$(tableName) for insert as \n" +
+"create trigger $(triggerName) on $(schemaName)$(tableName) for insert " + getOrderClause() + " as\n" +
" begin \n" +
" set nocount on \n" +
" declare @clientapplname varchar(50) \n" +
@@ -100,7 +100,7 @@ public AseTriggerTemplate(ISymmetricDialect symmetricDialect) {
sqlTemplates.put("updateTriggerTemplate" ,
-"create trigger $(triggerName) on $(schemaName)$(tableName) for update as \n" +
+"create trigger $(triggerName) on $(schemaName)$(tableName) for update " + getOrderClause() + " as\n" +
" begin \n" +
" set nocount on \n" +
" declare @DataRow varchar(16384) \n" +
@@ -140,7 +140,7 @@ public AseTriggerTemplate(ISymmetricDialect symmetricDialect) {
" end " );
sqlTemplates.put("updateHandleKeyUpdatesTriggerTemplate" ,
-"create trigger $(triggerName) on $(schemaName)$(tableName) for update as \n" +
+"create trigger $(triggerName) on $(schemaName)$(tableName) for update " + getOrderClause() + " as\n" +
" begin \n" +
" set nocount on \n" +
" declare @TransactionId varchar(1000) \n" +
@@ -192,7 +192,7 @@ public AseTriggerTemplate(ISymmetricDialect symmetricDialect) {
sqlTemplates.put("deleteTriggerTemplate" ,
-"create trigger $(triggerName) on $(schemaName)$(tableName) for delete as \n" +
+"create trigger $(triggerName) on $(schemaName)$(tableName) for delete " + getOrderClause() + " as\n" +
" begin \n" +
" set nocount on \n" +
" declare @OldPk varchar(2000) \n" +
@@ -229,6 +229,10 @@ public AseTriggerTemplate(ISymmetricDialect symmetricDialect) {
"select $(columns) from $(schemaName)$(tableName) t where $(whereClause) " );
}
+ protected String getOrderClause() {
+ return "";
+ }
+
@Override
protected String replaceTemplateVariables(DataEventType dml, Trigger trigger,
TriggerHistory history, Channel channel, String tablePrefix, Table originalTable, Table table,