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

时间:2009-12-18 18:05:32

标签: sql mysql sql-server postgresql ddl

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

是否有“批量”工具导出
- 所有表DDL(包括索引,检查/引用约束)
- 所有源代码(每个程序,功能的单独文件)
- 所有意见
- 所有序列
从SQL Server?

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

我没有偏好该工具是开源还是商业。

8 个答案:

答案 0 :(得分:33)

对于SQL Server

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

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

答案 1 :(得分:7)

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

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

答案 2 :(得分:6)

对于mysql,我使用mysqldump。命令非常简单。

  

$ mysqldump [options] db_name [tables]

     

$ mysqldump [options] --databases db_name1 [db_name2 db_name3 ...]

     

$ mysqldump [options] --all-databases

有很多选择。 Take a look here以获得良好的参考。

答案 3 :(得分:3)

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

答案 4 :(得分:2)

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

答案 5 :(得分:2)

除了SSMS中的“Generate Scripts”向导之外,您现在可以使用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

答案 6 :(得分:0)

答案 7 :(得分:0)

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

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