【发布时间】:2011-05-14 08:46:11
【问题描述】:
我正在尝试在开发过程中自动化我的数据库恢复,在 SQL Server 2008 上使用 TSQL,使用带有 pyodbc 的 sqlalchemy 作为传输。
我正在执行的命令是:
"""创建数据库数据库名称
restore database dbname FROM DISK='C:\Backups\dbname.bak' WITH REPLACE,MOVE 'dbname_data' TO 'C:\Databases\dbname_data.mdf',MOVE 'dbname_log' TO 'C:\Databases\dbname_log .ldf'"""
不幸的是,在 SQL Management Studio 中,代码运行后,我看到数据库仍处于“正在恢复...”状态。
如果我通过管理工作室恢复,它可以工作。如果我使用子进程调用“sqlcmd”,它可以工作。 pymssql 在身份验证方面存在问题,甚至没有达到那么远。
可能出了什么问题?
【问题讨论】:
-
我在使用 sqlserver 2012 时遇到了完全相同的问题,即使使用 django 提供连接
cursor。没用:DROP在RESTORE之前,WITH REPLACE, RECOVERY, NOUNLOAD,SET SINGLE_USER在RESTORE之前和SET MULTI_USER之后,USE [master]在RESTORE之前,SET SINGLE_USER WITH ROLLBACK IMMEDIATE之前。就像你一样,这些都在 Management Studio 中运行时工作。
标签: sql-server tsql sqlalchemy restore pyodbc