powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Create Table и процедуры.
11 сообщений из 11, страница 1 из 1
Create Table и процедуры.
    #35238610
Mikle83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Немного не понимаю поведение ASE 12.5. Есть процедура, которая внутри себя создает темповую табличку:
Create Procedure Basket_AfterPhantomMaker
(
@trans_id integer
)
as
Begin
Create Table #Basket ( ID integer)
.....................................
End

Так вот. Запуск этой процедуры с сервера простым exec Basket_AfterPhantomMaker
проходит ровно и без проблем... Когда же данная процедура вызывается из клиента, то вываливается ошибка "Native Error code: 2762 The 'Create Table' command is not allowed within a multi-statement transaction in the 'tempdb' database."
Что ему надо???
...
Рейтинг: 0 / 0
Create Table и процедуры.
    #35238760
0rc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ddl in tran
...
Рейтинг: 0 / 0
Create Table и процедуры.
    #35238762
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ddl in tran

_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Create Table и процедуры.
    #35238943
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
0rc пишет:
> ddl in tran

добавлю - на базе tempdb .

sp_helpdb tempdb
sp_dboption tempdb, ....

Но я бы так не делал, по другим причинам - создание временной
таблицы внутри многооператорной транзакции заблокирует
вашу tempdb до конца этой транзакции. А это - практически
эксклюзивная блокировка всего сервера, что очень плохо.

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

А лечил бы я проблему так :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Create Procedure Basket_AfterPhantomMaker
(
@trans_id integer
)
as
Begin

while @@trancount >  0 
   rollback tran

Create Table #Basket ( ID integer)
......................................
End


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Create Table и процедуры.
    #35238995
0rc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Но я бы так не делал, по другим причинам - создание временной
таблицы внутри многооператорной транзакции заблокирует
вашу tempdb до конца этой транзакции.


таки да... только не всегда есть возможность поменять приложение или програмистов :(
иногда проще сделать несколько темпдб и разнести приложения...
...
Рейтинг: 0 / 0
Create Table и процедуры.
    #35239019
Mikle83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо помог ддл ин транз.
exec master.dbo.sp_dboption tempdb, 'ddl in tran', true

Но вообще весчь странная.
Кодеры говорят, что транзакцию на этот момент закрыть не могут (даже как-то обясняют это :) )
А темповую таблицу создать не удается :(.
Кстати а просто задекларить таблицу нельзя? У меня обычный
Declare @Tablename Table ([ID] int)
вообще никак сибазом не понимается...
...
Рейтинг: 0 / 0
Create Table и процедуры.
    #35239116
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Я бы задумался о правильности вашего клиента, который открывает транзакции, когда его не просят, или о компетентности ваших клиентских программистов.

угу

Однако, не всегда это возможно: отнюдь не из-за некомпетентности программистов, а из-за логики приложения. По сему, IMHO,
0rc
несколько темпдб и разнести приложения

самое оно...
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Create Table и процедуры.
    #35241035
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ex_Soft пишет:

> несколько темпдб и разнести приложения
> самое оно...
Нет, нет.

Либо надо закрывать "нечаянно" открытые клиентские транзакции,
либо использовать псевдовременные или постоянные таблицы
(возможно не в tempdb).

> Всем спасибо помог ддл ин транз.
> exec master.dbo.sp_dboption tempdb, 'ddl in tran', true

Mikle83, так как вы сделали делать НЕЛЬЗЯ ! Это вам потом ой как
аукнется !
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Create Table и процедуры.
    #35241666
0rc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
> несколько темпдб и разнести приложения
Нет, нет.
...
Mikle83, так как вы сделали делать НЕЛЬЗЯ ! Это вам потом ой как
аукнется !

да, в теории - так, но суровые реалии жизни таковы что не всегда есть возможность влиять на разработчика :( и ПРИЙДЕТСЯ делать так как нельзя - но многие делают

2модератор : исправлюсь :)
...
Рейтинг: 0 / 0
Create Table и процедуры.
    #35241830
Mikle83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Mikle83, так как вы сделали делать НЕЛЬЗЯ ! Это вам потом ой как
аукнется !
Posted via ActualForum NNTP Server 1.4

А какие последствия данного действия? Кроме как монопольной блокировки БД temp?
ПО будет работать в монопольном, однопользовательском режиме (не сетевом).
...
Рейтинг: 0 / 0
Create Table и процедуры.
    #35242066
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikle83
А какие последствия данного действия? Кроме как монопольной блокировки БД temp?
ПО будет работать в монопольном, однопользовательском режиме (не сетевом).

Да не одной tempdb. Всего сервера в общем работа слегка блокируется.
Невся конечно ...
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Create Table и процедуры.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]