You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

批处理脚本恢复SQL Server数据库时出现参数错误求助

问题排查与解决

核心问题:参数符号错误

恢复脚本中使用了全角破折号(–Q),而SQLCMD命令仅支持**半角减号(-Q)**作为参数前缀,这导致命令解析失败,触发"Unexpected argument"错误。

修正后的恢复脚本

将–Q替换为-Q,同时建议补充REPLACE参数(避免数据库已存在时的报错),修正后的脚本如下:

set SqlServer=. 
set DatabaseName=mydbname 
set Username=test 
set Password=test 
set LocalFolder=C:\backups

chcp 65001 
SQLCMD -S %SqlServer% -U %Username% -P %Password% -Q "RESTORE DATABASE [%DatabaseName%] 
FROM DISK='%LocalFolder%\test.bak' WITH REPLACE"

额外注意事项

  • 确保执行脚本的账户对目标数据库拥有RESTORE DATABASE权限
  • 若目标数据库处于使用状态,需先切换为单用户模式再执行恢复,可将以下逻辑整合到批处理中:
    ALTER DATABASE [%DatabaseName%] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
    RESTORE DATABASE [%DatabaseName%] FROM DISK='%LocalFolder%\test.bak' WITH REPLACE;
    ALTER DATABASE [%DatabaseName%] SET MULTI_USER;
    

内容的提问来源于stack exchange,提问作者Steven01123581321

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 16:33:12