Версия MS SQL 2012, конечно, несет много интересных доработок.
Однако, меня давно интересует, почему в SQL Server'е не добавить немного синтаксического сахара относительно курсоров.
В самом деле, если бы у нас была возможность пробегаться по курсорам при помощи конструкций примерно следующего вида, то было бы намного проще:
Сейчас, для того, чтобы сделать тоже самое, нам приходится постоянно набирать куски кода вроде этого:
Который по своему функционалу аналогичен предыдущему, но как видно, намного длиннее.
Я понимаю, что есть разные виды курсоров. способы их обхода и пр.
Но все-же для наиболее часто употребляемого случая - когда мы используем локальный курс с движением только вперед - такой синтаксический сахар был бы очень полезен.
Кроме того, его можно было бы дополнить и различными настройками курсора, если уж это может кому-то потребоваться.
Прощу представителей компании Microsoft, в случае прочтения данного сообщения, считать это моим личным пожеланиям относительно новой функциональности в дальнейших версиях SQL Server.
Однако, меня давно интересует, почему в SQL Server'е не добавить немного синтаксического сахара относительно курсоров.
В самом деле, если бы у нас была возможность пробегаться по курсорам при помощи конструкций примерно следующего вида, то было бы намного проще:
foreach MyRow in (select * from MyTable)
begin
select MyField from MyRow
end
begin
select MyField from MyRow
end
Сейчас, для того, чтобы сделать тоже самое, нам приходится постоянно набирать куски кода вроде этого:
declare @MyField int
declare cur cursor for
select MyField from MyTable
open cur
fetch next from cur into @MyField
while @@FETCH_STATUS = 0
begin
select @MyField
fetch next from cur into @MyField
end
close cur
deallocate cur
declare cur cursor for
select MyField from MyTable
open cur
fetch next from cur into @MyField
while @@FETCH_STATUS = 0
begin
select @MyField
fetch next from cur into @MyField
end
close cur
deallocate cur
Я понимаю, что есть разные виды курсоров. способы их обхода и пр.
Но все-же для наиболее часто употребляемого случая - когда мы используем локальный курс с движением только вперед - такой синтаксический сахар был бы очень полезен.
Кроме того, его можно было бы дополнить и различными настройками курсора, если уж это может кому-то потребоваться.
Прощу представителей компании Microsoft, в случае прочтения данного сообщения, считать это моим личным пожеланиям относительно новой функциональности в дальнейших версиях SQL Server.
Чем меньше SQL-я, тем лучше!
ОтветитьУдалитьЯ бы сказал, чем меньше копи-паста, тем лучше :)
ОтветитьУдалитьЕщё на курсах мелкомягких в 99-м, "представитель" сей компании говорил типа следующее - курсоры это типf тяжелая артилерия, в жизни встречается в базах с непродуманной структурой. :)
ОтветитьУдалитьНю-ню.
ОтветитьУдалитьМне кажется, что этот представитель не особо представлял о чем говорит :)
И видимо, просто хотел продемонстрировать свою крутость :)