Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 42 43 44 45 46 [47] 48 49 50 51 .. 75   вперед  Ctrl
 Re: Выбор СУБД!  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
locky
пример для триггера, если не сложно.
Циклы будем крутить - или как?

Какие циклы? Получаем список документов и заливаем в промежуточную таблицу. Автоматом доки схватят инкременты.
4 фев 09, 15:26    [6778635]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Подпольщик
locky, номера сиквенса в принципе не пересекаются.
Если только вы его сами не сбросите.

Сиквенса - не пересекаются (забыл, как называется опция для "кругового" движения сиквенса).
А вот в том примере, который привел МСУ - пересечения имеют место быть.
4 фев 09, 15:27    [6778640]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
Подпольщик
Guest
МСУ
Подпольщик
МСУ, когда вы считали сиквенс, он инкреметнулся автоматом. Всё.
Больше никакая таблица не получит это же значение.

Если nextval - то да. А если currval - то нет.

А зачем вам текущее значение?
Или вы хотите, чтобы дырок в нумерации не было?
4 фев 09, 15:27    [6778643]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
locky
Срочно позовите софтварера! Пусть пояснит - как тут быть


Почитайте про currval, бабуль. Потом кричите
4 фев 09, 15:28    [6778646]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
МСУ
locky
пример для триггера, если не сложно.
Циклы будем крутить - или как?

Какие циклы? Получаем список документов и заливаем в промежуточную таблицу. Автоматом доки схватят инкременты.

Вы, уважаемый, сказали, что для получения последовательной нумерации нам необходимы не сиквенсы, а доп. табличка.
пример - в студию.
4 фев 09, 15:28    [6778647]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
Подпольщик
МСУ
Подпольщик
МСУ, когда вы считали сиквенс, он инкреметнулся автоматом. Всё.
Больше никакая таблица не получит это же значение.

Если nextval - то да. А если currval - то нет.

А зачем вам текущее значение?
Или вы хотите, чтобы дырок в нумерации не было?


Не, про дырки - эта наша тема с уважаемым Локи. Вы про чтение сказали. А чтение - это каррент вал. А каррент вал не инкрементит сиквенс.
4 фев 09, 15:29    [6778655]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
МСУ
locky
Срочно позовите софтварера! Пусть пояснит - как тут быть

Почитайте про currval, бабуль. Потом кричите

Вы, любезный, пытаетесь изначально использовать немного не тот инструмент, а затем обвиняеет всех в некошерности.
Для мс скл это было бы нечто вроде использование IDENT_CURRENT вместо SCOPE_IDENTITY.
4 фев 09, 15:30    [6778659]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
Подпольщик
Guest
locky, можно сделать так, чтобы сиквенс пересёкся, но это будет ошибка проектирования.
Согласитесь, что возможностей у сиквенса больше чем у автоинкрементного поля.
4 фев 09, 15:30    [6778664]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
МСУ
Не, про дырки - эта наша тема с уважаемым Локи. Вы про чтение сказали. А чтение - это каррент вал. А каррент вал не инкрементит сиквенс.

Уважаемый.
Почитайте про currval, особенно строчку "Before you use CURRVAL for a sequence in your session, you must first...."
А то неудобно получается....
4 фев 09, 15:33    [6778679]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
Подпольщик
Guest
МСУ, NextVal - это вы получаете следующее значение.
При этом последовательность ИНКРЕМЕНТИРУЕТСЯ.
Вы считываете NextVal в какую-либо переменную в процедуре и всё-
этот номер за вами навеки. И никто его не присвоит больше.
В документации это прописано. Я неоднократно проверял. Всё работает.
4 фев 09, 15:34    [6778686]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Подпольщик
locky, можно сделать так, чтобы сиквенс пересёкся, но это будет ошибка проектирования.
Согласитесь, что возможностей у сиквенса больше чем у автоинкрементного поля.

Это не ко мне, это к МСУ.
Я прекрасно знаю, что сиквенся - штука весьма и весьма полезная.
А если бы её еще чуть расширить - было бы еще лучше.

зы "Пересечение" (cycle) сиквенса - на самом деле, тоже достаточно полезная вещь.
4 фев 09, 15:34    [6778687]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
locky
МСУ
locky
пример для триггера, если не сложно.
Циклы будем крутить - или как?

Какие циклы? Получаем список документов и заливаем в промежуточную таблицу. Автоматом доки схватят инкременты.

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


USE [AdventureWorks]
GO
/****** Object:  Table [dbo].[Documents]    Script Date: 02/04/2009 15:36:21 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Documents](
	[DocId] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
	[DocDate] [datetime] NOT NULL,
 CONSTRAINT [PK_Documents] PRIMARY KEY CLUSTERED 
(
	[DocId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]


USE [AdventureWorks]
GO
/****** Object:  Table [dbo].[Links]    Script Date: 02/04/2009 15:36:30 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Links](
	[DocNum] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
	[DocId] [int] NOT NULL,
 CONSTRAINT [PK_Links_1] PRIMARY KEY CLUSTERED 
(
	[DocNum] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
ALTER TABLE [dbo].[Links]  WITH CHECK ADD  CONSTRAINT [FK_Links_Documents] FOREIGN KEY([DocId])
REFERENCES [dbo].[Documents] ([DocId])
GO
ALTER TABLE [dbo].[Links] CHECK CONSTRAINT [FK_Links_Documents]
4 фев 09, 15:36    [6778701]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
locky
Вы, любезный, пытаетесь изначально использовать немного не тот инструмент, а затем обвиняеет всех в некошерности.
Для мс скл это было бы нечто вроде использование IDENT_CURRENT вместо SCOPE_IDENTITY.


SCOPE_IDENTITY - для заливки нескольких записей из селекта?

Уволен!
4 фев 09, 15:37    [6778705]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
Подпольщик
МСУ, NextVal - это вы получаете следующее значение.
При этом последовательность ИНКРЕМЕНТИРУЕТСЯ.
Вы считываете NextVal в какую-либо переменную в процедуре и всё-
этот номер за вами навеки. И никто его не присвоит больше.
В документации это прописано. Я неоднократно проверял. Всё работает.


Я в курсе. Зачем Вы мне это рассказываете?

Итак, Вы говорили про чтение. Для чтения - есть каррент вал. Я просто него, собственно, и распинаюсь.
4 фев 09, 15:39    [6778712]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
Подпольщик
Guest
МСУ,
NextVal - Инкремент и ЧТЕНИЕ
CurVal - ЧТЕНИЕ без инкремента.
Оба метода - методы чтения. ОБА(!)
4 фев 09, 15:41    [6778726]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
Локи, DocNum - это номер для документа, который сидит в [dbo].[Documents].
4 фев 09, 15:41    [6778728]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
МСУ
Итак, Вы говорили про чтение. Для чтения - есть каррент вал. Я просто него, собственно, и распинаюсь.

А примечания к currval вы читали?
4 фев 09, 15:41    [6778737]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
Подпольщик
МСУ,
NextVal - Инкремент и ЧТЕНИЕCurVal - ЧТЕНИЕ без инкремента.
Оба метода - методы чтения. ОБА(!)


Да е-мае

Короче, я про каррент вал вещал :)

P.S. Зачем мне, простите, "засирать" сиквенс, если я просто хочу его прочитать.
4 фев 09, 15:42    [6778740]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
locky
МСУ
Итак, Вы говорили про чтение. Для чтения - есть каррент вал. Я просто него, собственно, и распинаюсь.

А примечания к currval вы читали?


А Вы?
4 фев 09, 15:42    [6778742]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
locky


Так что там по поводу непрерывности документов, бабуль?
4 фев 09, 15:43    [6778743]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
МСУ
Локи, DocNum - это номер для документа, который сидит в [dbo].[Documents].

т.е. на каждую вставку в документ мне нужно вставить еще одну запись в левую табличку, дабы, таким образом, получить оттель "порядковый номер документа"?
Очень удобно, ничего не скажешь.....
4 фев 09, 15:43    [6778748]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
Подпольщик
Guest
МСУ
Подпольщик
МСУ,
NextVal - Инкремент и ЧТЕНИЕCurVal - ЧТЕНИЕ без инкремента.
Оба метода - методы чтения. ОБА(!)


Да е-мае

Короче, я про каррент вал вещал :)

P.S. Зачем мне, простите, "засирать" сиквенс, если я просто хочу его прочитать.

Простите, у вас какая задача?
Есть подозрение, что где-то есть ошибка в формулировке.
4 фев 09, 15:44    [6778750]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
locky
МСУ
Локи, DocNum - это номер для документа, который сидит в [dbo].[Documents].

т.е. на каждую вставку в документ мне нужно вставить еще одну запись в левую табличку, дабы, таким образом, получить оттель "порядковый номер документа"?


БРАВО!!! Вы очень быстро въезжаете в тему, ба


locky
Очень удобно, ничего не скажешь.....

В чем сложности-то?
4 фев 09, 15:44    [6778754]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
МСУ
locky
МСУ
Итак, Вы говорили про чтение. Для чтения - есть каррент вал. Я просто него, собственно, и распинаюсь.

А примечания к currval вы читали?

А Вы?

Я вот читал.
И там черным по белому написано следующее: "Before you use CURRVAL for a sequence in your session, you must first initialize the sequence with NEXTVAL"
Прикольно, правда?
Сначала nextval, и только потом - currval....
А просто в сессии сделать currval - видимо, не получится?
4 фев 09, 15:45    [6778755]     Ответить | Цитировать Сообщить модератору
 Re: Выбор СУБД!  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
МСУ
locky
МСУ
Локи, DocNum - это номер для документа, который сидит в [dbo].[Documents].

т.е. на каждую вставку в документ мне нужно вставить еще одну запись в левую табличку, дабы, таким образом, получить оттель "порядковый номер документа"?

БРАВО!!! Вы очень быстро въезжаете в тему, ба
locky
Очень удобно, ничего не скажешь.....

В чем сложности-то?


Сложность? Пример кода, плиз.
4 фев 09, 15:45    [6778758]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 42 43 44 45 46 [47] 48 49 50 51 .. 75   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить