Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Подскажите пожалуйста с запросом  [new]
user87
Member

Откуда:
Сообщений: 257
Добрый день.

Подскажите, пожалуйста, разве так нельзя писать, после объявления курсора делаю if

DECLARE @Cursor CURSOR
SET @BetPool = CURSOR FOR

IF DATEPART(DAY,@CURRENT_DATETIME) = 1
begin
.....
end else.......

Incorrect syntax near the keyword 'IF'.

Нельзя ли это как-то обойти

Заранее спасибо за Ваши ответы
3 авг 14, 14:09    [16392941]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите пожалуйста с запросом  [new]
Volochkova
Member

Откуда:
Сообщений: 2321
user87,
У Вас проблемы с синтаксисом.
Вот скрипт из Template.


-- =============================================
-- Declare and using a READ_ONLY cursor
-- =============================================
DECLARE <cursor_name, sysname, test_cursor> CURSOR
READ_ONLY
FOR <select_statement, , SELECT au_fname FROM pubs.dbo.authors>

DECLARE @name varchar(40)
OPEN <cursor_name, sysname, test_cursor>

FETCH NEXT FROM <cursor_name, sysname, test_cursor> INTO @name
WHILE (@@fetch_status <> -1)
BEGIN
	IF (@@fetch_status <> -2)
	BEGIN
--		PRINT 'add user defined code here'
--		eg.
		DECLARE @message varchar(100)
		SELECT @message = 'my name is: ' + @name
		PRINT @message
	END
	FETCH NEXT FROM <cursor_name, sysname, test_cursor> INTO @name
END

CLOSE <cursor_name, sysname, test_cursor>
DEALLOCATE <cursor_name, sysname, test_cursor>
GO
3 авг 14, 14:15    [16392947]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите пожалуйста с запросом  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
user87
Нельзя ли это как-то обойти
Можно.
Забыть про курсоры.
По крайней мере пока они действительно не понадобятся
и Ваша квалификация не даст возможность их использовать.
Пока видим, что есть проблемы даже с чтением документации.
3 авг 14, 14:44    [16392984]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите пожалуйста с запросом  [new]
_human
Member

Откуда:
Сообщений: 560
iap
Ваша квалификация не даст возможность их использовать

Сильно.
Типа чем ближе к данным тем выше уровень мастерства)
3 авг 14, 17:09    [16393212]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите пожалуйста с запросом  [new]
_human
Member

Откуда:
Сообщений: 560
+
автор
Léon: The rifle set operations is the first weapon you learn how to use, because it lets you keep your distance from the clientdata. The closer you get to being a pro, the closer you can get to the client. The knifecursors, for example, is the last thing you learn.
3 авг 14, 17:18    [16393226]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите пожалуйста с запросом  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
_human
iap
Ваша квалификация не даст возможность их использовать

Сильно.
Типа чем ближе к данным тем выше уровень мастерства)
Зря смеётесь.
Про курсоры надо человеку говорить, когда он освоил SQL.
Потому что они не такие простые, как кажется.
Фактически, автор курсора берёт на себя функции оптимизатора,
задавая порядок обработки каждой строки.
3 авг 14, 18:24    [16393343]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите пожалуйста с запросом  [new]
_human
Member

Откуда:
Сообщений: 560
не смеялсо ни разу.
подписываюсь под каждым словом.
3 авг 14, 22:01    [16393621]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите пожалуйста с запросом  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
_human,

Не знаю Вас. Но. Аналогия с Леоном впечатлила =))

iap
Фактически, автор курсора берёт на себя функции оптимизатора, задавая порядок обработки каждой строки.

Это очень спорно! Может быть "думает" что задает, а так - .... готов спорить.
3 авг 14, 22:17    [16393646]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить