#sql-server #rename #system-tables
#sql-server #переименовать #системные таблицы
Вопрос:
Кто-то переименовал нашу таблицу Users в SYSUsers, что является ключевым именем таблицы sql. Есть ли способ переименовать эту таблицу?
Я попытался щелкнуть правой кнопкой мыши таблицу и перейти к переименованию, а затем выполнить sp_RENAME
над ней, но оба они пытаются переименовать таблицу system sysusers вместо созданной пользователем. Я даже не могу выбрать или экспортировать данные из [MyDatabase].[dbo].[SYSUsers]
, поскольку они считываются из таблицы sysusers sql server вместо созданной пользователем.
Мы используем SQL Server 2005.
Комментарии:
1. «Кто-то переименовал нашу таблицу Users в SYSUsers» — они обжариваются на большом огне? Откуда у них были разрешения на это? Создайте еще одно пространство над этим огнем!
2. Однако это неправильный вариант названия таблицы. Предположительно, при сопоставлении с учетом регистра у вас не возникло бы этой проблемы.
3. @Rachel — Ну, если она не находится в рабочей среде, одним из обходных путей может быть временное изменение параметров сортировки базы данных на CS, переименование таблицы, а затем переключение обратно.
4. @Rachel — Я предлагал параметры сортировки базы данных по умолчанию.
ALTER DATABASE [YourDB] COLLATE SQL_Latin1_General_CP1250_CS_AS
(или любая другая сортировка с учетом регистра) Я работаю с экземпляром, чувствительным к регистру, поэтому не могу проверить, сработает ли это. Я могу подтвердить, что создание таблицы с именемSYSUsers
не вызвало у меня никаких проблем, однако выполнение всего этого в нижнем регистре делает!5. @Martin Спасибо, это сработало. Если вы опубликуете это как ответ, я приму его
Ответ №1:
SYSUsers
у меня не вызывает такой проблемы, потому что я работаю с экземпляром, чувствительным к регистру (однако создание таблицы с именем sysusers
создает!).
Возможно, вы могли бы попробовать временно изменить параметры сортировки базы данных на CS
один и переключить его обратно после?
Комментарии:
1. Спасибо, Мартин. Для других, кто столкнулся с этой проблемой, я закончил тем, что запустил
SELECT SERVERPROPERTY('COLLATION')
, чтобы получить исходное значение сортировки, сохранил его где-нибудь и запустилALTER DATABASE MyDatabase COLLATE SQL_Latin1_General_CP1250_CS_AS
, выполнил свои инструкции rename, затем снова выполнилALTER DATABASE
инструкцию со старым значением сортировки