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