Access 可以像 SQL Server 一样生成 CREATE TABLE 脚本代码吗?

Posted

技术标签:

【中文标题】Access 可以像 SQL Server 一样生成 CREATE TABLE 脚本代码吗?【英文标题】:Can Access generate CREATE TABLE script code like SQL Server can? 【发布时间】:2014-09-03 00:02:29 【问题描述】:

我有一个包含数百个表的 MS Access 文件,我应该在运行时使用 C# 创建这些表。所以我应该生成一个脚本并在 C# 中使用该查询来创建表。 有没有办法让 MS Access 自动生成这个 SQL 脚本?

最好的问候

【问题讨论】:

Access 数据库只是一个文件,因此您实际上不需要运行 DDL 代码来创建表。您可以使用已经定义了空表(和关系)的数据库文件来分发您的应用程序。当它第一次运行时,您的应用程序可以将该文件复制到用户系统上的适当位置。 用户不应该看到空的访问文件,我可以在编译时将它放入我的应用程序吗? @EA 无论如何用户都会看到的。 你知道我只想在内存中创建一个访问文件,然后在内存中对其进行所有操作,然后我将通过电子邮件发送它,然后从内存中删除它 Access 数据库必须存在于文件系统某处中。您可以“在内存中创建访问文件”的唯一方法是在 RAM 驱动器上创建它,这(1)如今极为罕见,(2)无论如何都不能保证存在于用户的机器上。 【参考方案1】:

不,Access 本身不能像 SQL Server 那样自动创建 DDL (CREATE TABLE ...) 代码。完全有可能某些第三方产品可能能够扫描 Access 数据库并为每个表编写 DDL 语句,但对此类第三方产品的建议在 Stack Overflow 上将是题外话。

此外,正如问题的 cmets 中所述,创建一个空的数据库文件,然后通过 DDL“从头开始”创建每个表对于 Access 数据库并不是真正必要的。由于 Access 数据库只是一个文件,因此您可以使用已包含空表(以及其他所需的数据库对象)的数据库文件来分发您的应用程序。

【讨论】:

生产数据库已经有生产数据,不能删除,需要运行迁移脚本【参考方案2】:

您可以使用 SSIS 包来生成创建表命令。 启动一个新的 SSIS 包。为 Access 数据库添加连接管理器。 然后为 SQL Server 数据库添加连接管理器。 配置数据流任务时。选择 Access 数据库作为源,然后选择 SQL 服务器作为目标。当为目标选择表或视图时,点击 [New] 按钮,您将获得从 Access 表 DDL 转换为 MS SQL Server 的表创建脚本。

【讨论】:

以上是关于Access 可以像 SQL Server 一样生成 CREATE TABLE 脚本代码吗?的主要内容,如果未能解决你的问题,请参考以下文章

SQL-Server 后端、MS Access 前端:连接

我可以将MS Access连接到SQL Server而不是特定的SQL Server数据库吗?

我可以像内置数据库一样使用我的桌面应用程序部署 SQL Server Express 吗?

如何像 sql server 一样在 h2 中使用 getDate()

SQL Server 和 Oracle 以及 MySQL 都有哪些区别

sql server 2008不用查询语句怎样查看新建的表的信息?像2000中的企业管理器中有个返回所有列一样