迁移到SQL Server 2017后遇到了一些有趣的问题。
绝对路径测试
backup database master to disk = 'C:\Temp\1\2\3\master.bak'
按预期在C:\ Temp \ 1 \ 2 \ 3 \中创建备份。
相对路径测试#1
backup database master to disk = 'C:\Temp\1\2\3\..\master.bak'
备份在C:\ Temp \
中创建预期:C:\ Temp \ 1 \ 2 \
相对路径测试#2
backup database master to disk = 'C:\Temp\11\22\33\..\master.bak'
backup database master to disk = 'C:\Temp\111\222\333\..\master.bak'
backup database master to disk = 'C:\Temp\bin\bin\bin\..\master.bak'
备份在文件夹C:\ Temp \ 11 \,C:\ Temp \ 111 \,C:\ Temp \ bin \
中创建预期:C:\ Temp \ 11 \ 22 \,C:\ Temp \ 111 \ 222 \和C:\ Temp \ bin \ bin \。
相对路径测试#3
backup database master to disk = 'C:\Temp\Folder1\Folder2\Folder3\..\master.bak'
backup database master to disk = 'C:\Temp\1111\2222\3333\..\master.bak'
备份按预期分别在文件夹C:\ Temp \ Folder1 \ Folder2和C:\ Temp \ 1111 \ 2222中创建。
如您所见,所有相对路径都具有相同的深度,但根据文件夹名称的长度,备份文件位于不同的级别。 我无法使用SQL Server 2014复制此问题。 我能够在SQL Server 2017 RTM和RTM-CU2中复制此问题。
操作系统:Windows Server 2016.粘贴到Windows资源管理器时,路径会正确解析。
如果相对路径包含短(少于4个字符)文件夹名称,如何使它们起作用?
答案 0 :(得分:0)
在“ Microsoft SQL Server 2017(RTM)-14.0.1000.169(X64)”上确认
这是一个错误!但是,在使用它后,我发现了一种解决方法,可以在目录名称后添加另一个点。
backup database master to disk = 'C:\Temp\1.\2.\3.\..\master.bak'
这已成功备份到'C:\ Temp \ 1 \ 2 \'。我找不到任何参考,为什么这行得通。另外,如果可能的话,最好远离低字符目录。
答案 1 :(得分:0)
此问题似乎已在SQL Server 2017 CU14(或更早版本)中得以解决。