2009-08-12 110 views
0

我是MSSQL开发人员,最近我的任务是修复基于Access的系统。这一变化涉及到数据库的更改。我不想在“活的”数据库上开发,我宁愿制作一个副本,然后在所有测试完成时结束,并在结构方面与活动同步。访问开发 - 使实时数据库与开发数据库保持同步

如何使用访问权限执行此操作?我可以从开发数据库制作升级脚本并在“实时”访问数据库上运行它们吗?

谢谢!

回答

1

您可以创建一个脚本添加和更改字段(列),但它可能是更好的创建开发数据库的空复制,并从现场数据库追加,使用查询和VBA。

0

当然可以,但有时比手动应用更改更困难。如果您只需对数据库的一个实例执行更改,则最好将其复制以供开发,开发更改并准备更改规范以手动应用/半手动应用(某些脚本可能很容易实现开发 - 它会缩短改变部署的时间)

例如,很难从TRUE更改列的“必需”属性设置为false。 (您已经使列临时拷贝,删除原单,使新的用适当的设置,复制临时列的内容到新列,删除临时一个 - 非常简单,不是吗?)

-1

由于您是SQL Server开发人员的区域,因此可以考虑在Access中分离出前端和后端。然后你可以使后端成为SQL Server表达式。然后,您可以轻松地对更改的脚本进行脚本编写,这与您现在在SQL Server中执行的操作相同。我在Access工作已经有一段时间了,但我认为你需要重新链接前端的表格。

1

你可以按照Ramou的想法。真的,Access数据库通常是完整的,包含在一个文件中。因此,您可以复制整个数据库并进行工作并测试副本,然后部署副本。这样,您就可以利用迄今为止开发的代码,结构和对象,而无需其他程序或脚本。访问开发很简单,有许多在线资源。

+0

-1。分割数据库对于描述的任务是必不可少的。 – Smandoli 2009-08-13 17:41:02

0

Compare'Em将创建VBA代码两个数据库之间的差异,以便根据需要它可以做升级,以督促后端。我在后端的表中保留一个版本号,并执行相应的子程序来升级后端。

0

首先,数据库应被分成后端(仅表)和前端(形式/报告/查询/模块/等)。每个用户都将在其工作站上拥有前端的副本,并链接到后端的表格,并在文件服务器上共享。

进行开发,你会工作在前端的一个副本,改变窗体/报告/代码等,并准备部署时,用户会直接复制过来现有的前端的顶部。

如果你改变数据结构,你可以编写脚本,但为什么要麻烦?编写和测试脚本需要花费更多时间,以便将测试平台中的更改后端化,然后在新前端投入生产使用时重新进行。如果我需要升级同一个后端的多个副本,我只会编写这样的脚本。

0

第一个关键是分裂数据库,在许多答案中已经找到了。要快速简便地部署客户端数据库,请查看these instructions

+0

Auto FE更新程序比该脚本做了很多事情,包括创建/更新快捷方式等。http://www.granite.ab.ca/access/autofe.htm – 2009-08-13 22:19:25

+0

谢谢...这可能是最好的对于我的生活迄今为止。我会看一看。 – Smandoli 2009-08-13 22:40:30

0

这是一个新手的建议,但:

当您更改数据库的dev的副本,进入到一个文本文件中的一系列将执行这些变化,仍然保持数据完整的SQL命令。

定期取得实时数据库的新副本,并对其运行脚本,以测试这些脚本将A)正常工作,B)正确保留所有数据。

当需要发布您的工作时,请执行最后一项测试,针对活动数据库的副本运行SQL命令。 (为此,请将实时数据库脱机,以便不会有新数据进入。)

只要您确定它可以工作,只需将实时数据库交换到最新的开发数据库即可。

而且,您的所有数据库更改都已脚本化在您的文本文件中,因此如果需要,您可以稍后再回头查看它们。