将MS-Access数据库转换为SQL脚本的工具

3
我们的软件包使用MS-Access数据库,这个数据库已经被修改了很多次,所以仅仅查看文件有点复杂(表之间的关系是小地狱),无论如何,
是否有一种方法或程序可以将此mdb文件转换为SQL脚本(任何类型的SQL脚本都可以)。
谢谢。
3个回答

3

1
请确保仔细检查索引、约束、默认值等。我曾经看到过 SQL Server 迁移工具的一些奇怪行为。它非常适合移动数据,但对其他元信息的处理则稍微有些不足。 - AnonJr

1

1

SubSonic提供了将数据库设计(以及数据)转储到SQL的选项。我发现它在过去备份测试数据库到源代码控制时非常方便。

下载并安装SubSonic 2.1版本。

您可以完全从命令行运行生成脚本,但我个人发现使用App.Config文件更容易调整配置选项。设置一个.Net项目,并将App.Config文件设置为适当的设置。有关App.Config的文档可以在此处找到:http://subsonicproject.com/configuration/config-options/

这是我旧项目中的一个示例:


<?xml version="1.0" encoding="utf-8" \>
<configuration>
    <configSections>
        <section name="SubSonicService" 
            type="SubSonic.SubSonicSection, SubSonic" 
            requirePermission="false"/>
    </configSections>

    <connectionStrings>
        <clear />
        <add name="subTest" 
            connectionString="Data Source=MYCOMP\MICROSOFTSMLBIZ\,56183;Database=someDB;User ID=someId;Password=somePasswrd!"
            providerName="System.Data.SqlClient" />
    </connectionStrings>

    <SubSonicService defaultProvider="subTest">
        <providers>
            <clear/>
            <add name="subTest" 
                type="SubSonic.sqlDataProvider, SubSonic" 
                connectionStringName="subTest"
                generatedNamespace="TerraCognita.Project.Services.DAL"
                includeTableList="^Bug$, ^Person$, ^Groups$, ^Project$, ^TimeInterval$"/>
        </providers>
    </SubSonicService>
</configuration>

使用适合于您的数据库的连接字符串和(我相信)适用于 Access 数据库的提供程序。(您也可以在命令行上指定大多数参数,但我个人发现使用配置文件更为直观。)

打开命令提示符,当前文件夹应该是包含 App.Config 的文件夹。以下是您需要的命令:

[安装文件夹]\SubCommander\sonic.exe [命令] /out [输出文件名]

其中 [命令] 可以是 scriptschema 或 scriptdata。(还有其他命令,但这两个是您感兴趣的。帮助也是一种选项。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接