Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > как проверить существование курсора


Автор: 4ybaka 16.6.2008, 19:20
для временной таблицы делал так:
Код

if OBJECT_ID('tempdb..#TempTable', 'U') is not null
    drop table #TempTable

но тип для курсора в мсдне не нашел...

Автор: Magnifico 17.6.2008, 11:16
разве курсор объект базы данных
объявляем и разрушаем
Код

DECLARE testcursor CURSOR 
OPEN testcursor
........................................
CLOSE testcursor
DEALLOCATE testcursor


вот все типы
Код

select distinct type from sys.objects

Автор: 4ybaka 17.6.2008, 11:21
Magnifico, я так и делаю, но если где-то в запросе произошла ошибка,то курсор не удалится.или может быть,что кто-то сделал курсор с таким же именем...вообщем хотелось бы проверить.

Автор: Magnifico 17.6.2008, 12:05
Код

DECLARE testcursor CURSOR local 
FOR
SELECT * 
FROM myclients
OPEN testcursor

select Cursor_Status('local','testcursor')
IF CURSOR_STATUS('local','testcursor')>=0
PRINT 'курсор открыт'
close testcursor

select Cursor_Status('local','testcursor')
IF CURSOR_STATUS('local','testcursor')=-1
PRINT 'курсор закрыт'

deallocate testcursor

select Cursor_Status('local','testcursor')
IF CURSOR_STATUS('local','testcursor')=-3
PRINT 'курсор не сущесвует '


http://msdn.microsoft.com/ru-ru/library/ms177609.aspx

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)