Переименовать SQL table test[‘] 2

#sql #sql-server-2008-r2

#sql #sql-server-2008-r2

Вопрос:

Может кто-нибудь сказать мне, как я переименую эту таблицу?

 test[']2
  

Я пробовал EXEC sp_rename 'test['']2', 'abc' во всех комбинациях.. и он завершается с ошибкой Syntax error parsing SQL identifier

Я попробовал следующее

 EXEC sp_rename 'test['']2', 'abc';
EXEC sp_rename 'test[]'']2', 'abc';
EXEC sp_rename '[test['']2]', 'abc';
EXEC sp_rename '[test[]'']2]', 'abc';
EXEC sp_rename [test[]']2], 'abc';
EXEC sp_rename [test[']2], 'abc';
  

есть у кого-нибудь другие идеи?


РЕШЕНИЕ

На случай, если вы столкнулись с той же проблемой и хотите безопасно переименовать таблицу, вот ссылка на код

Он основан на использовании object_id таблицы, которую вы получаете из sys.tables, но вы можете легко изменить код, чтобы использовать имя таблицы

Переименовать таблицу MSSQL

Комментарии:

1. Извините, забыл упомянуть об этом. MSSQL 2008 R2

Ответ №1:

Попробуйте это:

 exec sp_rename '"test['']"', 'abc'
  

Комментарии:

1. спасибо, акула, но я получил ответ. пропустил комбинацию 🙂 exec sp_rename '[test ['']] 2]', 'abc';

2. @Christian нет проблем 🙂 есть несколько способов снять шкуру с этого пресловутого кота.

Ответ №2:

Нашел!

Идентификатор пропустил одну комбинацию. Ответ таков

exec sp_rename '[test ['']] 2]', 'abc';

Ответ №3:

Можете ли вы проверить настройку QUOTED_IDENTIFIER

Комментарии:

1. При запуске DBCC UserOptions, QUOTED_IDENTIFIER имеет значение SET