代码之家  ›  专栏  ›  技术社区  ›  Oli

将整个sqlserver数据库从Python复制到JSON

  •  0
  • Oli  · 技术社区  · 16 年前

    我面临一个非典型的转换问题。大约十年前,我用ASP编写了一个大型网站。多年来这变成了ASP.NET但数据库还是一样的。

    更复杂的是,我不再有窗户了。有段时间我在我所有的机器上都搬到了Ubuntu。我可以要求主机给我发送一个备份,但由于无法访问带有MSSQL的计算机,我将无法执行此操作 使用 如果我需要的话。

    db = {}
    for table in database:
        db[table.name] = [row for row in table]
    

    db 去某个地方以后再消费。。。但是如何进行表迭代呢?有什么更容易做的吗?MSSQL可以跨平台SQLDump(inc数据)吗?

    对于以前的MSSQL,我使用过pymssql,但是我不知道如何迭代表和复制行(最好是使用列标题,这样我就可以知道数据是什么)。我不需要太多的代码,但我需要一个正确的方向。

    4 回复  |  直到 16 年前
        1
  •  1
  •   Marcelo Cantos    16 年前

    查看sysobjects和syscolumns表。同时尝试:

    SELECT * FROM sysobjects WHERE name LIKE 'sys%'
    

    查找其他感兴趣的元表。看到了吗 here

        2
  •  1
  •   user35288 user35288    16 年前

    当我需要从python连接到sqlserver时,我喜欢adodbcython模块。以下是指向简单教程/示例的链接: http://phplens.com/lens/adodb/adodb-py-docs.htm#tutorial

        3
  •  1
  •   Cade Roux    16 年前

    我知道你说的是JSON,但是生成一个SQL脚本来用XML完成整个转储非常简单:

    SELECT  REPLACE(REPLACE('SELECT * FROM {TABLE_SCHEMA}.{TABLE_NAME} FOR XML RAW', '{TABLE_SCHEMA}',
                            QUOTENAME(TABLE_SCHEMA)), '{TABLE_NAME}', QUOTENAME(TABLE_NAME))
    FROM    INFORMATION_SCHEMA.TABLES
    WHERE   TABLE_TYPE = 'BASE TABLE'
    ORDER BY TABLE_SCHEMA
           ,TABLE_NAME
    
        4
  •  0
  •   Preet Sangha    16 年前

    除了你的编码方法,我想说:

    • 在windows上使用评估设置虚拟机
    • 对其进行sql server评估
    • 恢复您的数据
    • 手动或自动使用优秀的数据库脚本工具从 red-gate
    • 如果没问题,那么你有(a)一个好的备份和(b)一个脚本输出。