首页 文章

是否有工具为SQL Server生成完整的数据库DDL? Postgres和MySQL怎么样?

提问于
浏览
16

使用Toad for Oracle,我可以生成完整的DDL文件,描述Oracle模式的所有表,视图,源代码(过程,函数,包),序列和授权 . 一个很棒的功能是它将每个DDL声明分成不同的文件(每个对象的文件,无论是表,过程,视图等),所以我可以编写代码并在没有数据库连接的情况下查看数据库的结构 . 使用DDL文件的另一个好处是,每次我需要查看表定义时,我都不必连接到数据库来生成DDL . 在Toad for Oracle中,执行此操作的方法是转到数据库 - >导出,然后根据要导出的内容选择相应的菜单项 . 它为您提供了当时数据库的精美图片 .

是否有"batch"工具可以导出

  • 所有表DDL(包括索引,检查/引用约束)
  • 所有源代码(每个过程,函数的单独文件)
  • 所有观点
  • 所有序列
    从SQL Server?

那么PostgreSQL呢?
MySQL怎么样?
安格尔怎么样?

我不喜欢该工具是开源还是商业 .

8 回答

  • 7

    在PostgreSQL中,只需对pg_dump使用-s选项即可 . 您可以使用自定义格式将其作为普通sql脚本(整个数据库的一个文件)获取,然后可以将脚本放在每个对象的一个文件中(如果需要) .

    PgAdmin工具还会显示每个对象的SQL转储,但我认为没有一种很好的方法可以从那里一次性获取它们 .

  • 0

    For SQL Server

    在SQL Server Management Studio中,右键单击数据库并选择“任务” - >“生成脚本” .

    系统将要求您选择要在脚本中包含哪些DDL对象 .

  • 3

    对于mysql,我使用mysqldump . 命令很简单 .

    $ mysqldump [options] db_name [tables] $ mysqldump [options] --databases db_name1 [db_name2 db_name3 ...] $ mysqldump [options] --all-databases

    很多选择 . Take a look here以获得很好的参考 .

  • 6

    MySQL有一个很棒的工具叫做MySQL workbench,可以让你反向和转发工程师数据库,以及同步,这是我真正喜欢的 . 您可以在执行这些功能时查看DDL .

  • 2

    我写了SMOscript,它可以满足您的需求(指MSSQL Server)

  • 33

    除了SSMS中的“生成脚本”向导之外,您现在可以使用mssql-scripter这是一个命令行工具来生成DDL和DML脚本 .

    它是一个开源的基于Python的工具,您可以通过以下方式安装:pip install mssql-scripter .

    以下是可用于将数据库架构和数据编写到文件的脚本的示例 . mssql-scripter -S localhost -d AdventureWorks -U sa --schema-and-data> ./adventureworks.sql更多指南:https://github.com/Microsoft/sql-xplat-cli/blob/dev/doc/usage_guide.md

    这里是GitHub存储库的链接:https://github.com/Microsoft/sql-xplat-cli

  • 0
  • 2

    遵循Daniel Vassallo的说法,这对我有用:

    pg_dump -f c:\filename.sql -C -n public -O -s -d Moodle3.1 -h localhost -p 5432 -U postgres -w
    

相关问题