#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, но вы можете легко изменить код, чтобы использовать имя таблицы
Комментарии:
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