【问题标题】:Pulling SQL Script from Database Using pyodbc使用 pyodbc 从数据库中提取 SQL 脚本
【发布时间】:2018-04-09 13:01:50
【问题描述】:

我对数据库比较陌生,所以这个问题可能有一个简单的答案(我一直在寻找几个小时)。

我想编写一个 Python 脚本来提取存储在 SQL Server Management Studio 中的 SQL 代码。我可以使用 pyodbc 成功连接到数据库并对数据库表运行查询,但我希望能够在不运行的情况下提取存储在过程、函数、视图等中的 SQL 代码。

这似乎是一件相对简单的事情。我知道它可以在 Powershell 中完成,但我更喜欢使用 Python。是否有某种模块或 pyodbc hack 可以做到这一点?

【问题讨论】:

    标签: python python-3.x ssms pyodbc


    【解决方案1】:

    您可以在 SQL Server 中使用sp_helptext 命令,它会逐行为您提供 SQL Server 对象源代码:

    stored_proc_text = ""
    
    res = cursor.execute('sp_helptext my_stored_procedure')
    
    for row in res:
        stored_proc_text += row[0]
    
    print(stored_proc_text)
    

    祝你好运!

    【讨论】:

    • 这很好用!我有一些SETUSE 语句位于运行cursor.execute() 时sp_helptext 似乎没有提取的一些SQL 脚本的开头。您是否碰巧知道该区域的名称以及如何使用 sp_helptext 提取这些语句?
    • 不幸的是,我不知道有什么办法。此方法在CREATE PROCEDURE 语句之后提取实际过程本身。之前的其他语句只是运行时语句,不会永久存储在数据库中。
    猜你喜欢
    • 1970-01-01
    • 2021-12-06
    • 2020-07-08
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多