April 30, 2012 at 8:29 pm
Comments posted to this topic are about the item Sequences III
April 30, 2012 at 8:30 pm
Nice question - finally beginning to understand what a "Sequence", is and how it works ..........THANKS
April 30, 2012 at 10:51 pm
Thanks for a really easy one!
(I wish I came up with it...)
May 1, 2012 at 1:50 am
I think this question indicates that using default values with a new item like CREATE SEQUENCE isn't a great idea. I, for one, will be defining everything (AS, START WITH, INCREMENT BY, MINVALUE, MAXVALUE, CYCLE, CACHE) if I get round to using sequences in SQLServer. I know it might look wordy and take up a few more lines but for the sake of clarity, and potential help in solving problems, I would think it worth it.
May 1, 2012 at 3:09 am
Nice question. Easy if one recognises the decimal representation of 2**31.
Tom
May 1, 2012 at 5:37 am
Argh! Blew right past the CYCLE/NO CYCLE option explanation in BOL, looking for behavior when min value exceeded. SHould have had that first cup of green tea.
Thanks for the question! I've really enjoyed these questions on CREATE SEQUENCE. I look forward to using it when my company moves to 2012 ....
.... in 2021!
[font="Verdana"]Please don't go. The drones need you. They look up to you.[/font]
Connect to me on LinkedIn
May 1, 2012 at 5:38 am
I like these sequence questions, despite the fact I keep getting them wrong 😀
May 1, 2012 at 5:49 am
Does anyone have any suggestions for possible uses for sequences? Once upon a time I'd have used them for populating primary keys instead of using identities (ie the way I used to in Oracle). But now that we have the Output clause to easily read back the generated values there doesn't seem much advantage in using a sequence instead.
May 1, 2012 at 5:56 am
Toreador (5/1/2012)
Does anyone have any suggestions for possible uses for sequences? Once upon a time I'd have used them for populating primary keys instead of using identities (ie the way I used to in Oracle). But now that we have the Output clause to easily read back the generated values there doesn't seem much advantage in using a sequence instead.
Our software has to run on Oracle and SQLServer. At the moment, the modules that use sequences are Oracle only but if we port those modules to SQLServer we would use sequence there, too, so as to keep the code as similar as possible.
May 1, 2012 at 7:59 am
Thanks for another SEQUENCEs question, I think I now understand how they work.
I agree with Marlon that defaults should not be used in sequences, as it is harder to debug when there is a problem.
"El" Jerry
May 1, 2012 at 8:56 am
another good question - cheers
May 1, 2012 at 9:19 am
marlon.seton (5/1/2012)
I think this question indicates that using default values with a new item like CREATE SEQUENCE isn't a great idea. I, for one, will be defining everything (AS, START WITH, INCREMENT BY, MINVALUE, MAXVALUE, CYCLE, CACHE) if I get round to using sequences in SQLServer. I know it might look wordy and take up a few more lines but for the sake of clarity, and potential help in solving problems, I would think it worth it.
Defaults aren't bad... a default sequence is a bigint starting at -9,223,372,036,854,775,808 and counting up.
In this case the qotd started at the bottom end of the int and counted down.
May 1, 2012 at 9:22 am
Toreador (5/1/2012)
Does anyone have any suggestions for possible uses for sequences? Once upon a time I'd have used them for populating primary keys instead of using identities (ie the way I used to in Oracle). But now that we have the Output clause to easily read back the generated values there doesn't seem much advantage in using a sequence instead.
a loosely coupled multi-sql server system could use these....
define the sequence on each server in a way that they never collide. Then you could write your own "merge" code to replicate changes in the manner you describe.
Other than something like that.... no clue... personally I prefer identities.
May 1, 2012 at 11:14 am
Thanks for the question. Not sure if we will ever use this feature but it is good to know how it works anyway.
May 1, 2012 at 11:39 am
mtassin (5/1/2012)
marlon.seton (5/1/2012)
I think this question indicates that using default values with a new item like CREATE SEQUENCE isn't a great idea. I, for one, will be defining everything (AS, START WITH, INCREMENT BY, MINVALUE, MAXVALUE, CYCLE, CACHE) if I get round to using sequences in SQLServer. I know it might look wordy and take up a few more lines but for the sake of clarity, and potential help in solving problems, I would think it worth it.Defaults aren't bad... a default sequence is a bigint starting at -9,223,372,036,854,775,808 and counting up.
In this case the qotd started at the bottom end of the int and counted down.
This QotD (and Sequences I and II) were written to highlight specific defaults for sequences. No, defaults in and of themselves aren't bad -- indeed with sequences Microsoft has done an OK job of ensuring that if you rely on defaults, things won't break too badly.
The problem comes in when you specify some values but leave others at default, as in this scenario, or when you haven't used a feature for a while, and think a default is A when it's actually B.
If you explicitly define each value, you not only can't easily make that kind of mistake, but you've also documented the structure completely in one place rather than relying on documentation elsewhere. This reduces the chance that someone else (a coworker or even a replacement) could misunderstand what the sequence is doing.
Viewing 15 posts - 1 through 15 (of 24 total)
You must be logged in to reply to this topic. Login to reply