SQL Server 2017 CU15无需REPLACE可覆盖还原数据库:是个例还是普遍问题?
关于SQL Server 2017 CU15中WITH REPLACE选项失效的问题
先直接给你明确结论:这仅为个例,只发生在SQL Server 2017 CU15(版本号14.0.3162.1)这个特定版本里。
具体验证下来的细节:
- 在这个版本中,还原数据库时不需要指定
WITH REPLACE选项就能直接覆盖现有数据库,原本用来控制覆盖行为的“覆盖现有数据库(WITH REPLACE)”选项已经失效,系统会直接忽略它。 - 我用SSMS 17.8.1和17.9.1两个版本都测试过,不管是用图形界面(GUI)操作,还是在查询窗口写SQL语句执行,都会出现这个问题。
- 备份文件的来源也不影响这个现象:不管是从SQL Server 2014(版本号12.0.6024.0)备份出来的文件,还是本地SQL Server 2017自己生成的备份,还原时的表现都一模一样。
实际语句对比
比如执行这条不带REPLACE的还原语句:
RESTORE DATABASE [TMP1] FROM DISK = N'F:\tmp\TMP1.bak' WITH FILE = 1, NOUNLOAD, STATS = 5
和加上REPLACE选项的语句效果完全相同,都会直接覆盖掉已存在的TMP1数据库。
内容的提问来源于stack exchange,提问作者R_M
相关产品推荐
相关产品推荐

