powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проблема с IDENTITY
4 сообщений из 4, страница 1 из 1
Проблема с IDENTITY
    #32000044
Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hello All,

столкнулся с проблемой:
при добавлении записи в таблицу, у которой PrimaryKey это IDENTITY int,
MSSQL 6.5 пишет, что нарушается уникальность ключа !?

Может кто объяснит из-за чего это бывает и, главное, как с этим бороться?

С уважением, Алексей.
...
Рейтинг: 0 / 0
Проблема с IDENTITY
    #32000048
wlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Действительно существует проблема с IDENTITY на SQL Server 6.5 - в основном это проявляется после перезагрузки сервера - при этом почему-то теряется последнее значение. Поэтому совет такой - не пользоваться IDENTITY на шестерке на постоянных таблицах, на временных же все работает корректно. Генерите значение сами, или переходите на семерку!!!
...
Рейтинг: 0 / 0
Проблема с IDENTITY
    #32000060
Levi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Такая проблема возникала при использовании trial версии. Счётчик падал после истечения 120 дней. Хотя это, если правильно помню, происходило иногда и чаще. Лечение такое (лечить приходится при каждом падении):
необходимо выполнить примерно такой скрипт

DECLARE @MaxID int
SELECT @MaxID=max(ID) FROM Table
SET IDENTITY_INSERT Table ON
INSERT Table (ID,...) VALUES (@MaxID+1,...)
SET IDENTITY_INSERT Table OFF
DELETE Table WHERE ID=@MaxID+1

Он начнёт счётчик с @MaxID+1, после чего "мусорная" запись удаляется. Эту процедуру надо повторить для каждой таблице, где глюканул счётчик.
Естественно, это не кардинальное решение, но данные спасти можно и сервер успокаивается ещё на несколько месяцев.
Рекомендую перейти на SQL Server 7 или на SQL Server 2000 b2. Здесь этой проблемы нет (по опыту 1.5 лет активной эксплуатации в корпоративной задаче).

Слава Левашёв (asklevi@email.com)
...
Рейтинг: 0 / 0
Проблема с IDENTITY
    #32000180
Victor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня иногда бывает такая ошибка при работе 1С Предприятия для MSSQL 6.5, когда клиент зависает на какой-то операции записи.
Лечится командой
dbcc checkident (таблица).
Так как это может затрагивать несколько таблиц, я написал следующую процедуру, которая делает эту команду по всем таблицам, имеющим поле IDENTITY.

create procedure _1BVN_IDENT
as
declare @table varchar(30), @s varchar(50)
declare object_cursor cursor for
select name from sysobjects
where (type = 'U') and (category & 0x1 = 1)
open object_cursor
fetch next from object_cursor into @table
while (@@fetch_status <> -1)
begin
if (@@fetch_status <> -2)
begin
print @table
select @s = "dbcc checkident (" + @table + ")"
exec ( @s )
end
fetch next from object_cursor into @table
end
print "Identity values have been updated for all tables."
deallocate object_cursor
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проблема с IDENTITY
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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