Blast-Radius Aware AI Code Review for Business-Critical Systems
LiveReview LiveReview Explore LiveReview

SQL::Translator::Producer::SQLServer - MS SQLServer producer for SQL::Translator

Authors

       See the included AUTHORS file: <http://search.cpan.org/dist/SQL-Translator/AUTHORS>

Description

       This is currently a thin wrapper around the nextgen SQL::Translator::Generator::DDL::SQLServer DDL maker.

Extra Attributes

       field.list
           List of values for an enum field.

License

       This code is free software and may be distributed under the same terms as Perl itself.

perl v5.40.0                                       2024-11-23             SQL::Translator...ucer::SQLServer(3pm)

Name

       SQL::Translator::Producer::SQLServer - MS SQLServer producer for SQL::Translator

See Also

       SQL::Translator

Synopsis

         use SQL::Translator;

         my $t = SQL::Translator->new( parser => '...', producer => 'SQLServer' );
         $t->translate;

Todo

        * !! Write some tests !!
        * Reserved words list needs updating to SQLServer.
        * Triggers, Procedures and Views DO NOT WORK

           # Text of view is already a 'create view' statement so no need to
           # be fancy
           foreach ( $schema->get_views ) {
               my $name = $_->name();
               $output .= "\n\n";
               $output .= "--\n-- View: $name\n--\n\n" unless $no_comments;
               my $text = $_->sql();
               $text =~ s/\r//g;
               $output .= "$text\nGO\n";
           }

           # Text of procedure already has the 'create procedure' stuff
           # so there is no need to do anything fancy. However, we should
           # think about doing fancy stuff with granting permissions and
           # so on.
           foreach ( $schema->get_procedures ) {
               my $name = $_->name();
               $output .= "\n\n";
               $output .= "--\n-- Procedure: $name\n--\n\n" unless $no_comments;
               my $text = $_->sql();
             $text =~ s/\r//g;
               $output .= "$text\nGO\n";
           }

See Also