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

时间:2008-12-17 14:20:18

标签: sql ms-access

我们的软件包使用MS-Access数据库,这个数据库已被多次修改,因此,看到文件(表之间的关系是小地狱)有点复杂,无论如何,

是否有方法或程序将此mdb文件转换为SQL脚本(任何类型的SQL脚本现在都会这样做)。

谢谢,

3 个答案:

答案 0 :(得分:3)

你看过SQL Server Migration for Microsoft Access吗?

如果将副本转换为SQL Server,则可以更好地了解数据库。

答案 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 [命令] /输出[OutputFileName]

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

答案 2 :(得分:1)

您可以查看Database Comparer