【发布时间】:2016-05-02 12:12:02
【问题描述】:
我正在尝试创建一个夜间任务,它将我的 SQL Server 数据库作为“夜间快照”下载到 MSAccess 2010 中,到目前为止,我已经让它工作了。
我创建了一个包含宏的空白数据库,它可以执行导入,然后优雅地退出。在我的用户名下效果很好:
@echo off
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c%%a%%b)
set dest=c:\temp\%mydate%-RAVEN.accdb
xcopy BLANK_RAVEN_WITH_MACROS.accdb %dest%* /Y
start "C:\Program Files (x86)\Microsoft Office\Office14\MSACCESS.EXE" %dest% /X IMPORT_RAVEN
但是,当我以 SYSTEM 用户身份运行任务时(注意——我不应该以自己的用户名身份运行任务),什么也没有发生。
作为记录,SYSTEM 用户确实有权访问我的其他数据库,并且 SYSTEM 帐户可以将 MS Access 空白文件复制到目标。但是,Access 没有任何反应。我只是看到 MSAccess 在后台无限期地作为 SYSTEM 运行。它永远不会退出
如何通过 SYSTEM 用户帐户运行 MSAccess 和运行宏?
【问题讨论】:
-
为什么不使用 bcp 备份呢? Access 是否进行了一些额外的处理,如果是,是否可以不直接放在数据库中?
-
Bcp?他能举个例子吗?
-
这是一个 Sybase 示例,但参数应该非常相似。这会将表备份到文件:
bcp sales.dbo.order_header out c:/cdh/temp.dat -n -S myserver -U scott -P tiger。如果您需要恢复它,它将是bcp <table> in而不是out。-n表示“本机”,意味着生成的文件将不可读,但它消除了任何定界错误,处理任何数据类型并且文件大小小于-c可读输出 -
顺便说一句,它也非常快,无论是备份还是恢复。
标签: sql-server database windows ms-access scheduled-tasks