小编Thi*_*lle的帖子

删除名称中包含不可打印字符的表格

我有一个旧表,其名称包含不可打印的字符(CHAR(31),具体来说)。

不可打印的字符位于下划线旁边,我发现快捷方式CTRL+SHIFT+_创建了该CHAR(31)字符(这意味着“美国” - 单位分隔符)。以前的开发人员可能会错误地使用这个组合,并创建了包含这个奇怪字符的表格。

当我们SELECT对表发出命令时,它会返回结果。但是,当我们试图发出反对任何DDL( ,DROPsp_rename等),字符会导致一个问题。

例子:

DROP TABLE Table_Name;
Run Code Online (Sandbox Code Playgroud)

提高:

消息 15225 - 在当前数据库 'MyDB' 中找不到名为 'Table_Name' 的项目,因为@itemtype 被输入为 '(null)'。

EXEC sp_rename N'Table_Name', N'NewTableName'; 
Run Code Online (Sandbox Code Playgroud)

提高:

消息 102 - '_Name' 附近的语法不正确。

我已经用正确的名称复制了表,并在相关对象上更正了它。剩下的步骤就是将它从数据库中删除。

只是一个见解:当我们从 SQL Server 复制+粘贴到 Notepad++ 时,它会在表名中间显示隐藏字符(“US”),在下划线旁边:

单位分隔符 (CHAR(31)) 字符

sql-server-2008 sql-server ddl

15
推荐指数
1
解决办法
1323
查看次数

标签 统计

ddl ×1

sql-server ×1

sql-server-2008 ×1