在 SQL Server 2008 R2 中,我通过在 SQL Server Management Studio 中右键单击服务器并设置它们来设置Data
和Log
位置。F:\moved\
但是,当我使用sqlcmd
它还原数据库时,它会还原E:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA
似乎是默认 SQL Server 位置的数据库。
为了存储目的,我需要始终恢复数据库,F:\moved\
但是当我在脚本中使用以下内容时,有时会出现错误:
RESTORE DATABASE $(database) FROM DISK = '$(root)\$(database).bak' WITH RECOVERY,
MOVE '$(database)' TO '$(datadir)$(database).mdf',
MOVE '$(database)_log' TO '$(datadir)$(database).ldf'
GO
错误:
将数据库上下文更改为“主”。
消息 3234,级别 16,状态 2,服务器 SQL1,第 3 行
逻辑文件 'userdb1' 不是数据库 'userdb1' 的一部分。使用 RESTORE FILELISTONLY 列出逻辑文件名。
消息 3013,级别 16,状态 1,服务器 SQL1,第 3 行
RESTORE DATABASE 异常终止。
默认情况下可以sqlcmd
强制恢复F:\moved\
,而不必像我上面那样手动指定它以避免错误?