SQL Server:删除带有特殊字符的架构

Orw*_*erg 2 sql sql-server

我有一个旧的架构,需要删除。问题是它的\名称中包含特殊字符(相信我,我不喜欢模式名称中的特殊字符)。我已经尝试过以下命令

DROP SCHEMA databasename."COMPANY\user1"
Run Code Online (Sandbox Code Playgroud)

COMPANY\user1模式的名称在哪里。

但是,我最终收到如下错误

SQL错误:“。”附近的语法不正确。

我将所有表都放到了架构内部,所以我认为不应该有任何对象剩余。我成功使用以下命令删除表

DROP TABLE databasename."COMPANY\user1".persontable;
Run Code Online (Sandbox Code Playgroud)

知道为什么我删除架构的尝试失败了吗?我敢肯定,这是我在语法中缺少的东西。

Gor*_*off 5

您是否尝试过使用方括号?

drop schema databasename.[COMPANY\user1]
Run Code Online (Sandbox Code Playgroud)

实际上,这是行不通的,因为drop schema它不接受数据库(就像文档中的语法所隐含的那样)。只需进入数据库并执行:

drop schema [COMPANY\user1]
Run Code Online (Sandbox Code Playgroud)

这对我来说具有不寻常字符的名称有效。