Удалить столбец в SQL, который содержит точки и квадратные скобки - PullRequest
0 голосов
/ 15 ноября 2018

Как можно удалить имя столбца [database].[dbo].[my_table].[col_name] на сервере SQL, то есть имя столбца с точками и квадратными скобками.Другими словами, это имя столбца, которое я хотел, но с префиксом имени базы данных и shema.Я пробовал много комбинаций, основанных на интернете, например, здесь , но безуспешно.Спасибо.

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

Я не понимаю, хотите ли вы переименовать этот столбец или удалить его, но вот как это сделать

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]]];
0 голосов
/ 15 ноября 2018

В идентификаторе с разделителями ']' экранируется как ']]', '[' и '.' не нужно убегать.

Так вот так:

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

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