Вызов 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"
- если ваша атака огромна, проверьте свободное место в этой базе данных.
и наслаждаться:)