Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5   вперед  Ctrl      все
 Re: Генераторы в MSSQL  [new]
VAT
Member

Откуда: Нижний Новгород
Сообщений: 295
Влом регистрироваться,

Ваше решение безусловно изящно.
Главное, избежать ненужных иллюзий.
9 окт 09, 16:10    [7766033]     Ответить | Цитировать Сообщить модератору
 Re: Генераторы в MSSQL  [new]
Влом регистрироваться
Guest
VAT,

ненужные - это какие? А иллюзии... - на IB работает, GENERATOR'ы для этой задачи - то, что надо. Проверено практикой. Будет такая же на MSSQL - буду ей пользоваться. А пока обхожусь из без нее...
9 окт 09, 16:49    [7766297]     Ответить | Цитировать Сообщить модератору
 Re: Генераторы в MSSQL  [new]
VAT
Member

Откуда: Нижний Новгород
Сообщений: 295
Влом регистрироваться,

Строго говоря, все иллюзии ненужные:-)
Генераторы для MS SQL мы делали до версии 6.0, когда не было IDENTITY, потом только для очень специальных случаев.
9 окт 09, 17:40    [7766624]     Ответить | Цитировать Сообщить модератору
 Re: Генераторы в MSSQL  [new]
Влом регистрироваться
Guest
VAT,

да сам обхожусь IDENTITY, я ж не говорю, что без генераторов ничего нельзя сделать! Но если бы последовательности были, была очень полезная фича. Чесслово, никак не могу понять противников ее существования - ну не нравится, так не используйте просто...
9 окт 09, 18:22    [7766815]     Ответить | Цитировать Сообщить модератору
 Re: Генераторы в MSSQL  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
DeColo®es
GreenSunrise
Заполняет он (долго) большущий документ, давит "сохранить" и получает мессагу "документ сохранен с номером таким-то". Кому от этого плохо?
Как минимум - дополнительное окно/действие после нажатия "ОК". Хотя вроде бы кнопки ОК должно уже быть достаточно - пользователь все увидел и все ему понравилось, зачем что-то еще показывать? ;)

Ну йопт... Офигенная причина. Вот мне всегда и казалось, что вся эта возня с дырками сведется к чему-то подобному.
9 окт 09, 21:21    [7767399]     Ответить | Цитировать Сообщить модератору
 Re: Генераторы в MSSQL  [new]
DeColo®es
Member

Откуда: Москва
Сообщений: 5503
Блог
GreenSunrise
Ну йопт... Офигенная причина. Вот мне всегда и казалось, что вся эта возня с дырками сведется к чему-то подобному.
Нормальная причина.
Я на жизнь зарабатываю программированием. И чем удобнее пользователю - тем больше у пользователя желания сотрудничать со мной и платить деньги.
Все остальные причины делать или не длать что-то (красота кода, "пуризм" и минимализм решений) сами собой никакого дохода почему-то не приносят. :(
А то, что программа выплевывает какие-то сообщения только потому, что так удобнее программировать с учетом непонятного пользователю нежелания программиста делать так, как просит он - доход никоим образом не увеличивает.
10 окт 09, 00:30    [7768067]     Ответить | Цитировать Сообщить модератору
 Re: Генераторы в MSSQL  [new]
DeColo®es
Member

Откуда: Москва
Сообщений: 5503
Блог
Кстати, генераторы позволяют еще и повысить скорость разработки - пишется одна функция, вместо пласок вокруг того же identity, при создании которого разработчики и не подозревали, что им захотят нумеровать документы.
10 окт 09, 00:33    [7768077]     Ответить | Цитировать Сообщить модератору
 Re: Генераторы в MSSQL  [new]
SanSYS
Member

Откуда:
Сообщений: 1879
это же паранойя, если хочешь уникальность идов по всей базе, имхо


нон
10 окт 09, 00:57    [7768154]     Ответить | Цитировать Сообщить модератору
 Re: Генераторы в MSSQL  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Да ладно, ладно :-) Я-то чего, я не против. Мне было интересно узнать причину всех этих многочисленных плясок, мне ее более-менее объяснили, за что всем объяснившим спасибо.

Сама задача мне неинтересна, но выступать по поводу ее ненужности не собираюсь ни в коей мере. Кому надо - воспользуется, кому не надо - ну и на здоровье, не воспользуется.
10 окт 09, 12:51    [7768723]     Ответить | Цитировать Сообщить модератору
 Re: Генераторы в MSSQL  [new]
demian111
Member

Откуда:
Сообщений: 6241
Если честно заполнения дырок, меня лично не сильно волнует. Меня больше интересует, получение в итоге последовательностей без блокировок, и по минимуму гимора.
Перечитал тему еще раз, Вообщем вижу три кашерных варианта:

1. функция newid, слишком много байт:)
2. identity, на один генератор требуется одна таблица об одном поле:)
3. extended procedure, минусы кажется не существенные.

Мне вот почему то кажется что третий вариант самый, более менее гибкий.
ну потом идет второй, и первый.
10 окт 09, 14:40    [7768847]     Ответить | Цитировать Сообщить модератору
 Re: Генераторы в MSSQL  [new]
DeColo®es
Member

Откуда: Москва
Сообщений: 5503
Блог
Чтобы было совсем понятно - предложенное решение разрабатывалось и мыслилось исключительно для генерации "human-readable" номеров.

Для суррогатных ключей и других "технических" нужд есть newid(), identity и прочие row_number()
10 окт 09, 17:57    [7769090]     Ответить | Цитировать Сообщить модератору
 Re: Генераторы в MSSQL  [new]
Влом регистрироваться
Guest
SanSYS,

да с чего бы это паранойя? ORM - такие буквы слышали?
11 окт 09, 00:33    [7769924]     Ответить | Цитировать Сообщить модератору
 Re: Генераторы в MSSQL  [new]
Дикий Билл
Member

Откуда:
Сообщений: 9599
Так и не понял, что плохого в генераторах.
Возможность знать номер заранее часто требуется, и в микрософте это видят раз добавили OUTPUT и NEWSEQUENTIALID.
Но все это напоминает "Чего только русские не придумают, чтоб хороших дорог не делать".
14 окт 09, 05:17    [7782129]     Ответить | Цитировать Сообщить модератору
 Re: Генераторы в MSSQL  [new]
iap
Member

Откуда: Москва
Сообщений: 47045
Дикий Билл
Так и не понял, что плохого в генераторах.
Возможность знать номер заранее часто требуется, и в микрософте это видят раз добавили OUTPUT и NEWSEQUENTIALID.
Но все это напоминает "Чего только русские не придумают, чтоб хороших дорог не делать".
OUTPUT - это не "заранее", а "после"
14 окт 09, 08:35    [7782301]     Ответить | Цитировать Сообщить модератору
 Re: Генераторы в MSSQL  [new]
msLex
Member

Откуда:
Сообщений: 8698
iap
OUTPUT - это не "заранее", а "после"

я бы сказал - "воврЕмя"
14 окт 09, 09:24    [7782415]     Ответить | Цитировать Сообщить модератору
 Re: Генераторы в MSSQL  [new]
SanSYS
Member

Откуда:
Сообщений: 1879
Влом регистрироваться
SanSYS,

да с чего бы это паранойя? ORM - такие буквы слышали?


уникальность идов по таблице - очень хорошо, но бо базето зачем? какая либо абстрагирующая сущность находится в четко заданной таблице, и у сущности есть уникальный для таблицы идентификатор. не понимаю, что с того плохого, что иная сущность, расположенная в другой объектной таблице может меть тот же идентификатор?

можно же кота назвать Василием Ивановичем, и ничего от этого плохого не случается :)
31 окт 09, 11:45    [7866130]     Ответить | Цитировать Сообщить модератору
 Re: Генераторы в MSSQL  [new]
Дикий Билл
Member

Откуда:
Сообщений: 9599
GUIDs: Not Necessarily Unique
У мужика сгенерировался GUID-дубликат!
3 дек 09, 05:53    [8011626]     Ответить | Цитировать Сообщить модератору
 Re: Генераторы в MSSQL  [new]
aleks2
Guest
Дикий Билл
GUIDs: Not Necessarily Unique
У мужика сгенерировался GUID-дубликат!


Ну и чо такого? Мужику просто повезло.

Тем более, что в статье и вовсе какая-то невнятная муть... кто, чего, куды вставляет?
3 дек 09, 06:57    [8011677]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Генераторы в MSSQL  [new]
Виктор Светлов
Member

Откуда: Нижневартовск, ХМАО-Югра, Сибирь
Сообщений: 88
to DeColo®es
Расскажите пожалуйста, как продвигается решение по счетчикам? Есть ли новые варианты?
31 мар 11, 13:25    [10451114]     Ответить | Цитировать Сообщить модератору
 Re: Генераторы в MSSQL  [new]
DeColo®es
Member

Откуда: Москва
Сообщений: 5503
Блог
Виктор Светлов,

Ну в общем-то опубликованное решение прекрасно работает, новых вариантов нет и пока не предвидится.
А что конкретно не устраивает?
31 мар 11, 15:12    [10452105]     Ответить | Цитировать Сообщить модератору
 Re: Генераторы в MSSQL  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31778
DeColo®es
Виктор Светлов,

Ну в общем-то опубликованное решение прекрасно работает, новых вариантов нет и пока не предвидится.
А что конкретно не устраивает?
Хороший маркетинг предполагает выпуск раз в полгода новой версии, даже если это ухудшает продукт :-)

А вообще надо бы это оформить как продукт, положить на какой нибуть http://sqlserversamples.codeplex.com
31 мар 11, 16:41    [10452848]     Ответить | Цитировать Сообщить модератору
 Re: Генераторы в MSSQL  [new]
Виктор Светлов
Member

Откуда: Нижневартовск, ХМАО-Югра, Сибирь
Сообщений: 88
DeColo®es
А что конкретно не устраивает?

Все устраивает, но mb что-то новое. Была бы возможность пересылать по интернету пиво, с удовольствием бы Вас поблагодарил :)

Вы же знаете мою любовь к автономным транзакциям :))
2 апр 11, 19:42    [10461717]     Ответить | Цитировать Сообщить модератору
 Re: Генераторы в MSSQL  [new]
Morhaim
Guest
Привет!

А что делать при SQL Server authentication? Откуда брать пароль?
Что по производительности, скажем в сравнении с identity, newid и NEWSEQUENTIALID?
20 май 11, 13:13    [10683971]     Ответить | Цитировать Сообщить модератору
 Re: Генераторы в MSSQL  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
по сабжу,свои счетчики для таблиц юзаем еще фиг знает с какого времени..странно что ета статья появмлась только не давно
20 май 11, 13:38    [10684217]     Ответить | Цитировать Сообщить модератору
 Re: Генераторы в MSSQL  [new]
VGalamakh
Member

Откуда: Киев (Альба)
Сообщений: 66
Может не совсем понял суть проблемы

но пользуюсь для генерации счетчиков следующим методом.
Есть таблица вида параметр - значение.

новое значение для счетчика получаю путем апдейта

declare @INVOICE_N int

update dbo.mytable
set [значение]=@INVOICE_N, @INVOICE_N=@INVOICE_N+1
where [параметр]='счетчик инвойсов'
20 май 11, 15:14    [10685053]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить