如何使用USE关键字指定名称包含点号的数据库
解决方案
SQL Server 对于包含特殊字符(点号、空格、保留关键字等)的标识符,需使用合法的包裹符处理,两种可行写法如下:
- 优先使用方括号
[]包裹,全场景兼容无需额外配置:
USE [mydb.1.2.3]
- 若要使用双引号包裹,需先开启
QUOTED_IDENTIFIER开关:
SET QUOTED_IDENTIFIER ON USE "mydb.1.2.3"
错误写法原因
- 直接执行
USE mydb.1.2.3时,SQL Server会将点号识别为层级分隔符,把语句解析为访问mydb库下1架构下2对象,自然会提示mydb库不存在 {}不是SQL Server支持的标识符包裹语法,直接使用会触发语法错误- 未开配置直接使用双引号报错,是因为默认
QUOTED_IDENTIFIER为OFF时,双引号会被识别为普通字符串的边界,无法用来包裹标识符
内容的提问来源于stack exchange,提问作者Zhang
相关产品推荐
相关产品推荐

