2017-02-14 30 views
0

Как создать роль в Sybase, которая имеет один из db в автономном режиме. Это дает 950 ошибок. Забавная часть, она создает роль в базе данных, но в сообщении говорится:Создать роль в Sybase с автономной базой данных

Пожалуйста, подождите и повторите попытку позже.
Sybase код ошибки = 950 Уровень важности = 14, State = 1, состояние транзакции = 0

+0

Ваш вопрос не имеет смысла. Вы сказали, что он дает ошибку, но создает роль. Как вы определяете, что он создает эту роль? Что не работает после создания роли. Как правило, база данных должна быть онлайн для роли, которую нужно создать, поскольку она должна записываться в системные таблицы в целевой базе данных. –

+0

Точно @MichaelGardner. Он не должен создавать роли. Я считаю, что это ошибка. Если вы попытаетесь создать новую роль, когда база данных находится в автономном режиме напрямую, используя Sybase Central, это вызывает ошибку, говорящую о том, что одна из баз данных отключена. Вы принимаете его, а затем нажмите «Готово», он покажет, что эта роль уже существует. – KshitishSC

ответ

1

поведение вы видите, может быть связано с тем, как ASE пакеты сделок, а на самом деле не ошибка.

Сама роль создается в основной базе данных (master..sysserverroles & master..sysloginroles), затем роль добавляется в пользовательскую базу данных (myUserDB..sysroles). Вероятно, это создается в нескольких транзакциях, поэтому транзакция для создания самой роли успешно завершается, но транзакция для добавления роли в базу данных терпит неудачу, поскольку база данных отключена.

Так что инструмент говорит вам правду о том, что эта роль существует, но ее все равно необходимо добавить в базу данных пользователей, как только база данных вернется в сеть.

+0

Спасибо за информацию, но это поведение происходит не только при попытке Sybase Central, но и при попытке использовать наш код и интерактивный SQL. Я новичок в этом, но если мое понимание правильное, когда мы пытаемся создать роль из процедуры, мы можем сказать, что существует несколько транзакций, и некоторая часть процедуры, которая откатывает предыдущие инструкции, не работает, но мы используем ** create role **, и это должно либо создать роль, либо бросить предупреждение, либо не должно создавать роли вообще. – KshitishSC

+0

@KshitishSC Интересно .. но по-прежнему кажется, что независимо от инструмента создание роли и назначение базы данных рассматриваются как отдельные транзакции. –

+0

да, кажется, так, поэтому я думаю, что это ошибка – KshitishSC

Смежные вопросы