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

Откуда:
Сообщений: 14
Суть проблемы такая. Есть ПО Timex(статистика проходов сотрудников). на slq сервере две базы AccessControl и Timex. На прошлой неделе были ошибки из за переполнения базы таймекс. когда нашли таблицу где было больше всего данных ее почистили(хранились созданные отчеты с 2008 года). После чистки все работало норм.
После нашли еще одну таблицу где хранятся данные по всем прекладыванием пропуска к турникету. их там было около 8.5 милионов. решили почистить и ее. удалили 268тысяч записей. после стала появлятся такая вот бяка.

Выгрузка идет из базы данных AcessControl которую не трогали. в какую сторону копать? разрабы ПО послали к чертям ибо версия не поддерживается обновляйтесь.

К сообщению приложен файл. Размер - 117Kb
22 апр 19, 09:35    [21868534]     Ответить | Цитировать Сообщить модератору
 Re: Элемент с тем же ключем уже был добавлен.  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20538
Zorex_56
удалили 268тысяч записей. после стала появлятся такая вот бяка.
Удалили небось "последнюю" запись, и теперь автоинкремент генерит значение, которое было у неё...
22 апр 19, 09:37    [21868537]     Ответить | Цитировать Сообщить модератору
 Re: Элемент с тем же ключем уже был добавлен.  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2396
Zorex_56,

cкрипт создания таблицы сможете приложить? или сразу предложить нанять специалиста?
22 апр 19, 09:40    [21868538]     Ответить | Цитировать Сообщить модератору
 Re: Элемент с тем же ключем уже был добавлен.  [new]
Zorex_56
Member

Откуда:
Сообщений: 14
Akina,

последнюю нет. первую да) сейчас нумерация начинается с 268125 ане с 1
22 апр 19, 10:26    [21868578]     Ответить | Цитировать Сообщить модератору
 Re: Элемент с тем же ключем уже был добавлен.  [new]
Zorex_56
Member

Откуда:
Сообщений: 14
Zorex_56,

USE [Timex]
GO
/****** Object: Table [dbo].[SkudEvent] Script Date: 04/22/2019 12:29:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SkudEvent](
[OID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
[HirschPropsLogID] [int] NULL,
[LenelPropsMachine] [int] NULL,
[LenelPropsSerialNum] [int] NULL,
[KeriPropsFileName] [nvarchar](100) NULL,
[KeriPropsOrderNumber] [int] NULL,
[ManualPropsCreatorInfo] [nvarchar](100) NULL,
[ManualPropsCreationTime] [datetime] NULL,
[ManualPropsCreationComment] [nvarchar](100) NULL,
[Time] [datetime] NULL,
[Door] [int] NULL,
[CardId] [bigint] NULL,
[Emp] [int] NULL,
[OptimisticLockField] [int] NULL,
[GCRecord] [int] NULL,
CONSTRAINT [PK_SkudEvent] PRIMARY KEY CLUSTERED
(
[OID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = ON, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]
) ON [PRIMARY]

GO
ALTER TABLE [dbo].[SkudEvent] WITH NOCHECK ADD CONSTRAINT [FK_SkudEvent_Door] FOREIGN KEY([Door])
REFERENCES [dbo].[Door] ([OID])
NOT FOR REPLICATION
GO
ALTER TABLE [dbo].[SkudEvent] CHECK CONSTRAINT [FK_SkudEvent_Door]
GO
ALTER TABLE [dbo].[SkudEvent] WITH NOCHECK ADD CONSTRAINT [FK_SkudEvent_Emp] FOREIGN KEY([Emp])
REFERENCES [dbo].[Employer] ([OID])
NOT FOR REPLICATION
GO
ALTER TABLE [dbo].[SkudEvent] CHECK CONSTRAINT [FK_SkudEvent_Emp]
22 апр 19, 10:27    [21868579]     Ответить | Цитировать Сообщить модератору
 Re: Элемент с тем же ключем уже был добавлен.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31364
Zorex_56,

Можно попробовать сделать checkident
Если не поможет, нужно смотреть цепочку действий, искать конкретную ошибку. Из вашего скрина не видно, что на самом деле происходит.

А вообще, либо софт поддерживает производитель, либо вы сами. Если производитель, то придётся принять его условия, либо заплатить за их изменение. Если сами, то придётся нанять специалиста. В общем, от затрат не уйти по любому :-)
22 апр 19, 10:43    [21868599]     Ответить | Цитировать Сообщить модератору
 Re: Элемент с тем же ключем уже был добавлен.  [new]
Zorex_56
Member

Откуда:
Сообщений: 14
alexeyvg
Zorex_56,

Можно попробовать сделать checkident


можно подробнее как сделать?
22 апр 19, 10:49    [21868606]     Ответить | Цитировать Сообщить модератору
 Re: Элемент с тем же ключем уже был добавлен.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31364
Zorex_56
alexeyvg
Zorex_56,

Можно попробовать сделать checkident


можно подробнее как сделать?
Вы вообще справку не читаете, из принципа?
Там описания есть, примеры

Самый первый пример:
A. Resetting the current identity value, if it is needed
The following example resets the current identity value, if it is needed, of the specified table in the AdventureWorks2012 database.
USE AdventureWorks2012;  
GO  
DBCC CHECKIDENT ('Person.AddressType');  
GO
22 апр 19, 11:10    [21868634]     Ответить | Цитировать Сообщить модератору
 Re: Элемент с тем же ключем уже был добавлен.  [new]
Zorex_56
Member

Откуда:
Сообщений: 14
alexeyvg,

я это делал прежде чем написать здесь.
Checking identity information: current identity value '9004237', current column value '9004237'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
22 апр 19, 11:19    [21868648]     Ответить | Цитировать Сообщить модератору
 Re: Элемент с тем же ключем уже был добавлен.  [new]
Zorex_56
Member

Откуда:
Сообщений: 14
а в свойствах таблицы показано что row count 8667497
22 апр 19, 11:21    [21868655]     Ответить | Цитировать Сообщить модератору
 Re: Элемент с тем же ключем уже был добавлен.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31364
Zorex_56
я это делал прежде чем написать здесь.
Checking identity information: current identity value '9004237', current column value '9004237'.
Ок, тогда нужно посмотреть, какая команда приводит к ошибке.
22 апр 19, 12:16    [21868738]     Ответить | Цитировать Сообщить модератору
 Re: Элемент с тем же ключем уже был добавлен.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31364
alexeyvg
Zorex_56
я это делал прежде чем написать здесь.
Checking identity information: current identity value '9004237', current column value '9004237'.
Ок, тогда нужно посмотреть, какая команда приводит к ошибке.
Подозреваю, что сиквел тут вообще ни при чём, а ошибка чисто в коде приложения. Где то там делается попытка вставить в словарь значение с неуникальным ключём.
Соответственно, тогда нужно взять исходник программы, и поправить ошибку в нём. Скомпилить, пользоваться.
22 апр 19, 12:20    [21868746]     Ответить | Цитировать Сообщить модератору
 Re: Элемент с тем же ключем уже был добавлен.  [new]
Zorex_56
Member

Откуда:
Сообщений: 14
alexeyvg, не вариант. прога 10 лет назад вышла. даже официалы говорят что помочь не чем не могут ибо данных по этим программам у них нет.
22 апр 19, 12:38    [21868766]     Ответить | Цитировать Сообщить модератору
 Re: Элемент с тем же ключем уже был добавлен.  [new]
Zorex_56
Member

Откуда:
Сообщений: 14
Zorex_56,

а если вычистить таблицу. все эти 8,5 миллионов записей?
22 апр 19, 12:39    [21868768]     Ответить | Цитировать Сообщить модератору
 Re: Элемент с тем же ключем уже был добавлен.  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2396
Zorex_56
Zorex_56,

а если вычистить таблицу. все эти 8,5 миллионов записей?


как вариант (можно переименоваь таблицу, и создать новую, чтобы не потерять данные)
но лучше профайлером поробовать отовить проблемный вопрос (если проблема в базе)
22 апр 19, 13:50    [21868863]     Ответить | Цитировать Сообщить модератору
 Re: Элемент с тем же ключем уже был добавлен.  [new]
Zorex_56
Member

Откуда:
Сообщений: 14
[quot StarikNavy]
Zorex_56
Zorex_56,


как вариант (можно переименоваь таблицу, и создать новую, чтобы не потерять данные)
но лучше профайлером поробовать отовить проблемный вопрос (если проблема в базе)


Дело в том что я этот sql express вижу впервые. никода БД не занимался. Тех кто раньше обслуживал эту программу естественно не найти. поэтому приходится самому ковырять.

про профайлер можно подробнее? как запустить как проверять?
22 апр 19, 14:04    [21868873]     Ответить | Цитировать Сообщить модератору
 Re: Элемент с тем же ключем уже был добавлен.  [new]
Zorex_56
Member

Откуда:
Сообщений: 14
StarikNavy,

Друган походу ты смог)))) создал таблицу новую. на том этапе где вылетала ошибка пошла загрузка данных. но как я понял загрузка идет с момента создания БД, т.е с 2008года. потому как раньше это происходило за минуту, то сейчас уже 10 минут идет загрузка
22 апр 19, 14:30    [21868889]     Ответить | Цитировать Сообщить модератору
 Re: Элемент с тем же ключем уже был добавлен.  [new]
Zorex_56
Member

Откуда:
Сообщений: 14
так и есть грузит с 2008 года. ну да ладно
22 апр 19, 14:35    [21868891]     Ответить | Цитировать Сообщить модератору
 Re: Элемент с тем же ключем уже был добавлен.  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Zorex_56,
т.е. у вас скорее всего обычный для таких хреней подход: всё пишет в локальный например аксесс, а потом портирует для отчётов в sql
22 апр 19, 15:25    [21868940]     Ответить | Цитировать Сообщить модератору
 Re: Элемент с тем же ключем уже был добавлен.  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54200
а это какой-то древний ASP?
22 апр 19, 16:53    [21869064]     Ответить | Цитировать Сообщить модератору
 Re: Элемент с тем же ключем уже был добавлен.  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 5958
andreymx
а это какой-то древний ASP?

Видно же по скриншоту, что толстый клиент на дотнете (скорее всего винформс).
Декомпилировать в проект (например, с пом. JustDecompile), ну, и курить исходники, если разработчики с этим разбираться не хотят.
Если код обфусцирован - перед декомпиляцией прогнать через de4dot.
22 апр 19, 16:59    [21869071]     Ответить | Цитировать Сообщить модератору
 Re: Элемент с тем же ключем уже был добавлен.  [new]
Zorex_56
Member

Откуда:
Сообщений: 14
все прошло успешно. спасибо всем за советы. программа 2008года лес дремучий
22 апр 19, 18:08    [21869165]     Ответить | Цитировать Сообщить модератору
 Re: Элемент с тем же ключем уже был добавлен.  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54200
Zorex_56
все прошло успешно. спасибо всем за советы. программа 2008года лес дремучий
а что таки было
22 апр 19, 18:13    [21869168]     Ответить | Цитировать Сообщить модератору
 Re: Элемент с тем же ключем уже был добавлен.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31364
andreymx
Zorex_56
все прошло успешно. спасибо всем за советы. программа 2008года лес дремучий
а что таки было
Они же не стали разбираться.
22 апр 19, 19:24    [21869209]     Ответить | Цитировать Сообщить модератору
 Re: Элемент с тем же ключем уже был добавлен.  [new]
Zorex_56
Member

Откуда:
Сообщений: 14
alexeyvg,

разбираться некому!!! на предприятии нет специалистов по SQL. единственное что смог сделать это создать новую таблицу.
23 апр 19, 05:48    [21869381]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить