- Removed use of $Revision$ SVN keyword to generate VERSION variables; now sub-module...
[dbsrgits/SQL-Translator.git] / lib / SQL / Translator / Parser / DBI / SQLServer.pm
index c22160a..2bf999a 100644 (file)
@@ -1,9 +1,9 @@
 package SQL::Translator::Parser::DBI::SQLServer;
 
 # -------------------------------------------------------------------
-# $Id: SQLServer.pm,v 1.2 2005-07-07 15:20:00 mwz444 Exp $
+# $Id$
 # -------------------------------------------------------------------
-# Copyright (C) 2002-4 SQLFairy Authors
+# Copyright (C) 2002-2009 SQLFairy Authors
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License as
@@ -39,8 +39,7 @@ use DBI;
 use SQL::Translator::Schema;
 use Data::Dumper;
 
-use vars qw[ $DEBUG $VERSION @EXPORT_OK ];
-$VERSION = sprintf "%d.%02d", q$Revision: 1.2 $ =~ /(\d+)\.(\d+)/;
+use vars qw[ $DEBUG @EXPORT_OK ];
 $DEBUG   = 0 unless defined $DEBUG;
 
 no strict 'refs';
@@ -141,7 +140,7 @@ SELECT o.name, colid,c.text
   FROM syscomments c
   JOIN sysobjects o
     ON c.id = o.id
- WHERE o.type ='P'
+ WHERE o.type in ('P', 'FN', 'TF', 'IF')
 }
 );
 
@@ -224,8 +223,10 @@ $table_info->{TABLE_TYPE},
                                          ) || die $table->error;
                 $f->is_nullable($c->{NULLABLE} == 1);
                 $f->is_auto_increment($is_auto_increment);
-                $c->{COLUMN_DEF} =~ s#\('?(.*?)'?\)#$1#;
-                $f->default_value($c->{COLUMN_DEF}) if defined $c->{COLUMN_DEF};
+                if ( defined $c->{COLUMN_DEF}) {
+                       $c->{COLUMN_DEF} =~ s#\('?(.*?)'?\)#$1#;
+                       $f->default_value($c->{COLUMN_DEF});
+                }
             }
 
             # add in primary key
@@ -295,6 +296,7 @@ $_->{INDEX_NAME},
         } elsif ($table_info->{TABLE_TYPE} eq 'VIEW') {
                next if $table_info->{TABLE_NAME} eq 'sysconstraints'
                        || $table_info->{TABLE_NAME} eq 'syssegments';
+               next if !$stuff->{view}->{$table_info->{TABLE_NAME}}->{text};
             my $view =  $schema->add_view(
                                           name =>
 $table_info->{TABLE_NAME},
@@ -320,6 +322,7 @@ $table_info->{TABLE_NAME},
     }
 
     foreach my $p (values %{$stuff->{procedures}}) {
+       next if !$p->{text};
         my $proc = $schema->add_procedure(
                                name      => $p->{name},
                                owner     => $p->{PROCEDURE_OWNER},