powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / как в АСА 8.0 переустановить значение autoincrement
9 сообщений из 9, страница 1 из 1
как в АСА 8.0 переустановить значение autoincrement
    #32753635
Юзя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В хелпе ссылка на такую системную процедуру
CALL sa_reset_identity ('employee', 'dba', 100).
Но она переустанавливает значения всех столбцов, а если надо конкретного?
...
Рейтинг: 0 / 0
как в АСА 8.0 переустановить значение autoincrement
    #32753855
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как это всех ??? В одной таблице может быть только одно инкремент поле. Вот его то она и переустанавливает :)
...
Рейтинг: 0 / 0
как в АСА 8.0 переустановить значение autoincrement
    #32753880
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему это "только одно"???? Кто сказал? :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
create table a(
 id1 integer default autoincrement,
 id2 integer default autoincrement,
 d char( 1 )
);

insert into a (d) values ('A');
insert into a (id2, d) values ( 10 , 'B');
insert into a (d) values ('C');

select * from a;
Другое дело что смысла большого в двух автоинкриментах нету. :)
Впрочем, на мой взгляд и один единственный автоинкримент это больше головной боли чем пользы. Но извращения ради! :)
...
Рейтинг: 0 / 0
как в АСА 8.0 переустановить значение autoincrement
    #32753933
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlПочему это "только одно"???? Кто сказал? :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
create table a(
 id1 integer default autoincrement,
 id2 integer default autoincrement,
 d char( 1 )
);

insert into a (d) values ('A');
insert into a (id2, d) values ( 10 , 'B');
insert into a (d) values ('C');

select * from a;

Мда, сделать 2 инкремента мне в голову как то не приходило, по MSSQL точно знаю, что нельзя, в ASA оказывается можно, правда непонятно зачем :)

White OwlВпрочем, на мой взгляд и один единственный автоинкримент это больше головной боли чем пользы. Но извращения ради! :)
А вот тут я не согласен - всю жизнь сижу на инкрементах и пока что то головной боли не ощущал.
...
Рейтинг: 0 / 0
как в АСА 8.0 переустановить значение autoincrement
    #32754037
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl
Впрочем, на мой взгляд и один единственный автоинкримент это больше головной боли чем пользы.
А в чем головная боль, если не секрет?
...
Рейтинг: 0 / 0
как в АСА 8.0 переустановить значение autoincrement
    #32754291
Юзя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну есть иногда задачи, в которых нужно 2 автоинкремента!
Например, одно ключевое, второе для порядкового номера,который в начале года будет сбрасываться в 0.
Так все таки? Нельзя сбросить интересующий инкремент?
...
Рейтинг: 0 / 0
как в АСА 8.0 переустановить значение autoincrement
    #32754343
Фотография Рыжий Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЮзяНу есть иногда задачи, в которых нужно 2 автоинкремента!
Например, одно ключевое, второе для порядкового номера,который в начале года будет сбрасываться в 0.
Так все таки? Нельзя сбросить интересующий инкремент?

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

Автоинкремент в репликациях бывало сбоил, я так полагаю поэтому у White Owl к ним нелюбовь, впрочем как и у меня :)
...
Рейтинг: 0 / 0
как в АСА 8.0 переустановить значение autoincrement
    #32754532
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЮзяНу есть иногда задачи, в которых нужно 2 автоинкремента!
Например, одно ключевое, второе для порядкового номера,который в начале года будет сбрасываться в 0.
Так все таки? Нельзя сбросить интересующий инкремент?
Инкремент не используется для порядкового номера, эта полезная фича для исскуственного ключа. Сделайте на триггере BEFORE INSERT FOR EACH ROW просто инициализацию поля:
Код: plaintext
1.
2.
3.
4.
5.
6.
DECLARE @Number int;
SELECT IsNull(Max(Number),  0 ) +  1 
INTO @Number
FROM Table1
WHERE Year(FieldDate) = Year(New.FieldDate);

SET New.Number = @Number;
все будет прекрасно работать и при вставке поле Number в разрезе каждого года будет автоматически наращиваться.
...
Рейтинг: 0 / 0
как в АСА 8.0 переустановить значение autoincrement
    #32755652
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рыжий КотАвтоинкремент в репликациях бывало сбоил, я так полагаю поэтому у White Owl к ним нелюбовь, впрочем как и у меня :)
Совершенно верно.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / как в АСА 8.0 переустановить значение autoincrement
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]