SQL Server 2017相对路径问题

问题描述 投票:10回答:2

迁移到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个字符以下)文件夹名称时,如何使相对路径工作?

sql-server windows-server-2016 sql-server-2017
2个回答
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 \'。我没有找到参考为什么这样做。另外,如果可能的话,远离低字符目录可能是个好主意。


0
投票

这似乎在SQL Server 2017 CU14(或可能更早)中得到修复。

© www.soinside.com 2019 - 2024. All rights reserved.