在SQL中删除包含点和方括号的列

时间:2018-11-15 17:28:37

标签: sql sql-server rename sql-delete

如何删除SQL Server中的列名[database].[dbo].[my_table].[col_name],即具有点和方括号的列名。换句话说,这是我想要的列名称,但以数据库名称和shema为前缀。 我尝试了许多基于互联网的组合,例如here,但没有成功。 谢谢。

2 个答案:

答案 0 :(得分:1)

在带分隔符的标识符中,“]”转义为“]]”,“ [”和“。”。不需要逃脱。

像这样:

create table #tt(id int, [[database]].[dbo]].[my_table]].[col_name]]] int)

alter table #tt drop column [[database]].[dbo]].[my_table]].[col_name]]]

答案 1 :(得分:1)

我不知道您是否要重命名此列或将其删除,但这是两者的实现方法

CREATE TABLE JustTest(
  Col1 INT,
  [[database]].[dbo]].[my_table]].[col_name]]] INT
);

-- To rename the column use this
EXEC sp_rename 'JustTest.[[database]].[dbo]].[my_table]].[col_name]]]', 
               'NewName', 
               'COLUMN';

-- If the table is TempTable use this
EXEC tempdb.sys.sp_rename N'#TMP.[[database]].[dbo]].[my_table]].[col_name]]]',
                N'NewName',
                N'COLUMN';

-- To drop it use this
ALTER TABLE JustTest DROP COLUMN [[database]].[dbo]].[my_table]].[col_name]]];