2009-11-06 180 views
1

我需要创建一个TSQL脚本来备份远程SQL Server Express(2005)上的数据库。我在另一个盒子上有一个SQL Server 2005。不确定如何从此SQL Server 2005运行脚本来执行备份作业。远程SQL Server Express备份数据库

剧本是这样的:

RESTORE DATABASE [myDB] FROM DISK = N'C:\Tmp\myDB.bak' WITH FILE = 1, 
    NOUNLOAD, STATS = 10 

其实,我通过使用SQL Server Management Studio Express的尝试在远程SQL Server Express的这个SQL脚本,它运行正常。我问这个问题的原因是我可以在SQL Server 2005上安排一项工作,但我无法在远程SQL Server Express上创建一个计划任务。

另一种方法,我认为是先在SQL Server Express上创建一个SQL SP。然后,我将编写一个简单的控制台应用程序来连接到SQL,并将Windows作为Windows Scheduled作业运行。

回答

2

TSQL没有必要这样做。 SQL Server(也是Express)包含一个名为sqlmaint.exe的实用程序,它允许您在本地或远程SQL服务器上执行备份操作。只需使用正确的命令行参数(documentation)编写一个调用sqlmaint的批处理文件,并将该批处理文件放入Windows调度程序。

如果您仍然希望通过TSQL完成,SQL Server还包含osql.exe,它允许您在本地或远程服务器上执行任意SQL语句。再次,您可以使用简单的批处理文件自动化它。

编辑:如果您想使用自己的应用程序调用TSQL脚本,那么了解您选择的编程语言或数据访问技术可能会有帮助。

+0

阅读文档。什么是PlantName或PlantID?我怎样才能定义一个?我的理解是,一个计划定义了一个数据库列表(在我的案例中是一个远程SQL Server Express中的dbs列表)。 – 2009-11-06 22:14:48

+0

您不需要PlanName或PlanID。查看最后一个示例 – Heinzi 2009-11-06 22:16:03

+0

因此,对于你的情况,你可以使用类似“sqlmaint -S myServer -D myDB -BkUpDB C:\ Tmp”的类型。但是请注意,备份文件的名称是自动生成的(请参阅BkUpDB on如果你需要一个固定的文件名,请考虑osql解决方案。 – Heinzi 2009-11-06 22:19:51

相关问题