diff --git a/symmetric-client/src/main/java/org/jumpmind/symmetric/db/mssql/MsSql2008SymmetricDialect.java b/symmetric-client/src/main/java/org/jumpmind/symmetric/db/mssql/MsSql2008SymmetricDialect.java index a1e2fd1f32..e7ff8e43b5 100644 --- a/symmetric-client/src/main/java/org/jumpmind/symmetric/db/mssql/MsSql2008SymmetricDialect.java +++ b/symmetric-client/src/main/java/org/jumpmind/symmetric/db/mssql/MsSql2008SymmetricDialect.java @@ -1,6 +1,13 @@ package org.jumpmind.symmetric.db.mssql; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + import org.jumpmind.db.platform.IDatabasePlatform; +import org.jumpmind.db.sql.IConnectionCallback; +import org.jumpmind.db.sql.JdbcSqlTemplate; import org.jumpmind.symmetric.model.Trigger; import org.jumpmind.symmetric.service.IParameterService; @@ -19,4 +26,32 @@ protected String getDbSpecificDataHasChangedCondition(Trigger trigger) { /* gets filled/replaced by trigger template as it will compare by each column */ return "$(anyColumnChanged)"; } + + @Override + public boolean doesDdlTriggerExist(final String catalogName, final String schema, final String triggerName) { + return ((JdbcSqlTemplate) platform.getSqlTemplate()).execute(new IConnectionCallback() { + public Boolean execute(Connection con) throws SQLException { + String previousCatalog = con.getCatalog(); + PreparedStatement stmt = con.prepareStatement("select count(*) from sys.triggers where name = ?"); + try { + if (catalogName != null) { + con.setCatalog(catalogName); + } + stmt.setString(1, triggerName); + ResultSet rs = stmt.executeQuery(); + if (rs.next()) { + int count = rs.getInt(1); + return count > 0; + } + } finally { + if (catalogName != null) { + con.setCatalog(previousCatalog); + } + stmt.close(); + } + return Boolean.FALSE; + } + }); + } + } diff --git a/symmetric-client/src/main/java/org/jumpmind/symmetric/db/mssql/MsSqlSymmetricDialect.java b/symmetric-client/src/main/java/org/jumpmind/symmetric/db/mssql/MsSqlSymmetricDialect.java index 96cac909a4..113274f49b 100644 --- a/symmetric-client/src/main/java/org/jumpmind/symmetric/db/mssql/MsSqlSymmetricDialect.java +++ b/symmetric-client/src/main/java/org/jumpmind/symmetric/db/mssql/MsSqlSymmetricDialect.java @@ -374,35 +374,6 @@ public Boolean execute(Connection con) throws SQLException { }); } - @Override - public boolean doesDdlTriggerExist(final String catalogName, final String schema, final String triggerName) { - return ((JdbcSqlTemplate) platform.getSqlTemplate()) - .execute(new IConnectionCallback() { - public Boolean execute(Connection con) throws SQLException { - String previousCatalog = con.getCatalog(); - PreparedStatement stmt = con - .prepareStatement("select count(*) from sys.triggers where name = ?"); - try { - if (catalogName != null) { - con.setCatalog(catalogName); - } - stmt.setString(1, triggerName); - ResultSet rs = stmt.executeQuery(); - if (rs.next()) { - int count = rs.getInt(1); - return count > 0; - } - } finally { - if (catalogName != null) { - con.setCatalog(previousCatalog); - } - stmt.close(); - } - return Boolean.FALSE; - } - }); - } - @Override public void removeDdlTrigger(StringBuilder sqlBuffer, String catalogName, String schemaName, String triggerName) { String sql = "drop trigger " + triggerName + " on database";