为了账号安全,请及时绑定邮箱和手机立即绑定

通过子进程备份 SQL 数据库时出现操作系统错误 123

通过子进程备份 SQL 数据库时出现操作系统错误 123

Helenr 2022-05-24 17:15:40
我目前正在尝试使用运行后台的 Python 3.7 应用程序自动备份数据库。我设法使用以下查询字符串备份数据库。SQLCommand = ("sqlcmd -E -S %s -Q \"BACKUP DATABASE %s TO DISK=\'%s\%02d-%02d-%02d-%02d:%02d:%02d.bak\'\"" % ("MYSERVER\SQLSERVICE", "MyDatabase", "C:\\Users\Malek\Documents\PYSQLBS\Backups",CDT.year, CDT.month, CDT.day, CDT.hour, CDT.minute, CDT.second))...print(subprocess.Popen(SQLCommand, shell=True, stdout=subprocess.PIPE).stdout.read())但是,我收到此错误。我 100% 确定该文件夹C:\Users\Malek\Documents\PYSQLBS\Backups存在,因为我直接在命令行中测试了该命令,并且它运行良好。消息 3201,级别 16,状态 1,服务器 MYSERVER\SQLSERVICE,第 1 行无法打开备份设备“C:\Users\Malek\Documents\PYSQLBS\Backups\2019-09 -09-16:24:46.bak”。操作系统错误 123(文件名、目录名或卷标语法不正确。)。消息 3013,级别 16,状态 1,服务器 MYSERVER\SQLSERVICE,第 1 行备份数据库异常终止。
查看完整描述

1 回答

?
慕仙森

TA贡献1827条经验 获得超8个赞

问题是:备份文件名称中的字符:2019-09 -09-16:24:46.bak

Windows 文件夹和文件路径不能包含:字符,除非在分隔驱动器号时,例如:C:\foo\bar.txt可以。C:\foo\bar:::baz.txt不是。


查看完整回答
反对 回复 2022-05-24
  • 1 回答
  • 0 关注
  • 508 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号