2013-05-20 2 views
0

Каждый раз, когда я пытаюсь получить DDL таблицы, я получил эту ошибку
Error когда я выбираю DDL из таблицы

Невозможно создать временную таблицу '#tmp. Имя префикса '#tmp' уже используется другой временной таблицей '#tmp'.
Существует уже один курсор с именем «ccolumn» на уровне вложенности «0».
Существует уже один курсор с именем «cindex» на уровне вложенности «0».
Существует уже другой курсор с именем «индексы» на уровне вложенности «0».
Существует уже один курсор с именем «cprotect» на уровне вложенности «0».
Попытка вставить дубликат ключа строки в объект «# tmp00000450018282794» с уникальным индексом «» _tmp_19748930791

Как я могу решить эту проблему?

+1

Какой продукт Sybase вы используете, и какой инструмент вы используете для создания DDL? –

+0

@MichaelGardner Я использую ASE ISQL в качестве инструмента и продукта Powerbuilder. Что мне делать? – Moudiz

+0

Я не уверен в использовании PB для DDL, но вы можете получить DDL для таблицы с помощью утилиты ASE 'ddlgen'. –

ответ

0

#tmp таблицы представляют собой временные рабочие таблицы, специфичные для сеанса, используемые приложениями для хранения обрабатываемых данных. Если вы получили сообщение об ошибке, что таблица уже существует, это указывает на то, что предыдущая попытка создания DDL еще не была завершена, когда был запущен новый, или предыдущая попытка зависла и должна быть убита.

Предполагая, что вы находитесь в среде разработки, я бы сначала попытался закрыть и перезапустить Powerbuilder, чтобы убедиться, что это очищает ошибку. Если это неясно, то следующая попытка - перезапустить сервер базы данных, который Powerbuilder использует в качестве источника данных.

В качестве альтернативы вы можете вручную подключиться к базе данных (через isql) и попробовать убить процесс, который не закрывается, и вручную ругать таблицу #tmp.

+0

спасибо за ваш ответ, я проверю его и посмотрю, работает ли он или нет. – Moudiz

+0

, вы сказали, что означает, что либо предыдущая попытка генерации DDL еще не была завершена, когда был запущен новый, либо предыдущая попытка зависания должна быть убита », как я могу это сделать,« убивая процесс »? как я могу это сделать вручную? – Moudiz

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