Вызов sp_rename для таблицы уничтожает соединение с базой данных в Sybase

Я пытаюсь переименовать таблицу, используя следующий синтаксис

sp_rename [oldname],[newname]

но каждый раз, когда я запускаю это, я получаю следующее [используя Aqua Datastudio]:

 Command was executed successfully

 Warnings: ---> 
   W (1): The SQL Server is terminating this process.
          <--- 
 [Executed: 16/08/10 11:11:10 AM] [Execution: 359ms] 

Затем соединение прерывается (больше ничего не может сделать в текущем анализаторе запросов (уникальный spid для каждого окна))

Нужно ли использовать master когда я запускаю эти команды, или я делаю что-то еще не так?

2 ответа

Вы не должны получать поведение, которое вы видите. Это должно либо вызвать ошибку (например, если у вас нет разрешения), либо работать успешно. Я подозреваю, что что-то идет не так под одеялом.

Вы проверили журнал ошибок для сервера ASE? Как правило, такого рода проблемы (принудительно закрываемые соединения) сопровождаются записью в журнале ошибок с немного большей информацией.

Журнал ошибок будет находиться на хосте, на котором работает сервер ASE, и, вероятно, будет в том же месте, в котором установлен ASE. Что-то вроде/opt/sybase/ASE-12_5/install/errorlog_MYSERVER

Старайтесь избегать использования "sp_rename". Потому что некоторые ссылки в системных таблицах остаются как старые имена. Когда-нибудь это может вызвать некоторые неисправности, если вы забудете об этом изменении.

Я предлагаю;

select * into table_backup from [tableRecent]
go
select * into [tableNew] from table_backup
go
drop table [tableRecent] -- in case of backup you may not drop that table
go
drop table table_backup -- in case of backup you may not drop that table
go
  • достичь этого; ваша база данных имеет опцию "выбрать в / массовая копия / pllsort"
  • если ваша атака огромна, проверьте свободное место в этой базе данных.

и наслаждаться:)

Другие вопросы по тегам