+ \r
+ \r
+ /**\r
+ * Deletes all foreign keys between tables in a sql server database.\r
+ * This make deleting tables easier.\r
+ * @param sqlServerDataSource\r
+ * @return\r
+ * @throws SQLException\r
+ */\r
+ public boolean deleteForeignKeys(CdmDataSource sqlServerDataSource) throws SQLException{\r
+ String sql = "SELECT name, id FROM sys.sysobjects WHERE (xtype = 'U')"; //all tables\r
+ ResultSet rs = sqlServerDataSource.executeQuery(sql);\r
+ while (rs.next()){\r
+ String tableName = rs.getString("name");\r
+ long tableId = rs.getLong("id");\r
+ sql = "SELECT name FROM sys.sysobjects WHERE xtype='F' and parent_obj = " + tableId;//get foreignkeys\r
+ ResultSet rsFk = sqlServerDataSource.executeQuery(sql);\r
+ while (rsFk.next()){\r
+ String fk = rsFk.getString("name");\r
+ sql = " ALTER TABLE "+tableName+" DROP CONSTRAINT "+fk + "";\r
+ sqlServerDataSource.executeUpdate(sql);\r
+ }\r
+ \r
+ }\r
+ return true;\r
+ }\r