Как я могу переименовать созданную пользователем таблицу SYSUSERS?

#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 инструкцию со старым значением сортировки