add remove_table_constraints to future
Arthur Axel 'fREW' Schmidt [Thu, 10 Mar 2011 04:11:43 +0000 (22:11 -0600)]
lib/SQL/Translator/Generator/DDL/SQLServer.pm
lib/SQL/Translator/Producer/SQLServer.pm

index 9482281..8425a0a 100644 (file)
@@ -173,5 +173,13 @@ sub drop_table {
       " DROP TABLE $q_name;\n"
 }
 
+sub remove_table_constraints {
+   my ($self, $table) = @_;
+   my $name = $table->name;
+   my $q_name = $self->quote($name);
+   "IF EXISTS (SELECT name FROM sysobjects WHERE name = '$name' AND type = 'U')" .
+   " ALTER TABLE $q_name NOCHECK CONSTRAINT all;\n"
+}
+
 1;
 
index 0208141..fe29c9b 100644 (file)
@@ -27,9 +27,7 @@ sub produce {
         my @tables = sort { $b->order <=> $a->order } $schema->get_tables;
         $output .= "--\n-- Turn off constraints\n--\n\n" unless $no_comments;
         foreach my $table (@tables) {
-            my $name = $table->name;
-            my $q_name = unreserve($name);
-            $output .= "IF EXISTS (SELECT name FROM sysobjects WHERE name = '$name' AND type = 'U') ALTER TABLE $q_name NOCHECK CONSTRAINT all;\n"
+            $output .= $future->remove_table_constraints($table)
         }
         $output .= "\n";
         $output .= "--\n-- Drop tables\n--\n\n" unless $no_comments;