Python - 将 SQL Server 数据库架构提取到文件

问题描述 投票:0回答:2

我经常需要将现有 SQL Server 数据库的完整架构提取到文件中。 我需要涵盖每个对象——表、视图、函数、SP、UDDT、触发器等。目的是这样我就可以使用文件差异实用程序将该架构与基线引用进行比较。

通常,我使用 Enterprise Manager 或 Management Studio 编写数据库对象的脚本,然后将这些文件连接起来,以一致的可预测顺序生成一个大文件。 我想知道是否有办法用Python来完成这个任务? 显然,它需要一个额外的包,但在查看了一些包(pyodbc、SQLAlchemy、SQLObject)后,它们似乎都不适合这个用例。

sql-server python-2.7 database-schema
2个回答
4
投票

如果您可以连接到 SQL Server 并在 Python 中运行查询,那么是的 – 这是可能的,但需要付出大量的努力和测试才能使其正常工作。

想法是使用系统表获取每个对象的详细信息,然后基于此生成DDL语句。一些(如果不是全部)DDL 语句已存在于 sys.syscomments 表中。

开始使用 Python 工作之前,首先在 SSMS 中执行和检查它。

select *
from sys.tables

select *
from sys.all_columns

select *
from sys.views

select *
from sys.syscomments

来自 MSDN 的所有系统表 文档


3
投票

我过去曾使用过这种 PowerShell 策略。 显然,这不是 Python,但它是一个您可以编写然后在 Python 中执行的脚本。 阅读本文,因为它可能是您最简单(也是最便宜)的解决方案:https://devblogs.microsoft.com/scripting/use-powershell-to-script-sql-database-objects/

作为免责声明,我仅导出存储过程,而不是每个对象。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.