我已经准备好拔掉我的头发了。我制作了一个脚本来备份和恢复构建查询的数据库和文件组,例如:
RESTORE DATABASE [dashdb_dev01_2024-04-11 143711] FROM DISK = 'E:\SQL2019_Data\Backup\dev01\20240410\1437\dashdb_dev01_2024-04-11 143711.bak' WITH REPLACE, RECOVERY, MOVE [dashdb_dev01_2024-04-11 143711] TO 'E:\SQL2019_Data\Backup\OLD\dashdb_dev01_2024-04-11 143711.mdf'
我得到了:
Msg 102, Level 15, State 1, Server FRPARPLMA-DBDEV, Line 1 Incorrect syntax near 'dashdb_dev01_2024-04-11 143711'.
我用来[...]
转义数据库名称,但我从 MSG 102 中了解到这是第 102 个字符(我就在这里?)。所以这是'E:\SQL2019_Data\Backup\dev01\20240410\1437\dashdb_dev01_2024-04-11 143711.bak'
之后的FROM DISK
。
我想,我该如何逃离这里的空间呢?
如果您将命令格式化为多行,那么您将收到更具体的错误消息。
恢复命令
错误信息
SQL Server管理工作室
如果您查看 SSMS 中的语句,您会注意到红色下划线部分:
这就是错误发生的地方。
解决方案
该命令的语法在RESTORE 语句 (Transact-SQL)
RESTORE ...
中有详细记录,解决方案是根据文档的此部分对逻辑名称使用单引号:'
所以你的脚本看起来像这样: