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

Откуда:
Сообщений: 33
Народ добрый день. Помогите пожалуста может кто сталкивался с такой проблемой. База данных перешла в режим поозрительный, ее востановили но теперь при списании или внисении продуктов выходит следующая ошибка: нарушение "PK_SHXdoccodex" ограничения prymary key. Невозможно вставить повторяющийся ключ в объект DBO_shxdoccodex. Базу сканирую на ошибки но не чего не выдает. Не знаю что делать даже( ЗАранее буду благодарен
21 авг 13, 09:01    [14733917]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка primari key в программе после востановления базы данных  [new]
aleks2
Guest
alen132
Народ добрый день. Помогите пожалуста может кто сталкивался с такой проблемой. База данных перешла в режим поозрительный, ее востановили но теперь при списании или внисении продуктов выходит следующая ошибка: нарушение "PK_SHXdoccodex" ограничения prymary key. Невозможно вставить повторяющийся ключ в объект DBO_shxdoccodex. Базу сканирую на ошибки но не чего не выдает. Не знаю что делать даже( ЗАранее буду благодарен


1. "Невозможно вставить повторяющийся ключ в объект DBO_shxdoccodex. " - это не ошибка структуры базы.
Это ошибка логики программы, которая вставляет.

2. Посмотри Profiler-ом чаво оно вставляет - станет понятнее.
21 авг 13, 09:05    [14733931]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка primari key в программе после востановления базы данных  [new]
alen132
Member

Откуда:
Сообщений: 33
Вы про данную программу имели ввиду? Data Profile Viewer
21 авг 13, 09:22    [14734016]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка primari key в программе после востановления базы данных  [new]
aleks2
Guest
SQL Server Profiler


Microsoft SQL Server Profiler is a graphical user interface to SQL Trace for monitoring an instance of the Database Engine or Analysis Services. You can capture and save data about each event to a file or table to analyze later. For example, you can monitor a production environment to see which stored procedures are affecting performance by executing too slowly.

To run SQL Server Profiler, on the Start menu, point to All Programs, Microsoft SQL Server 2008, Performance Tools, and then click SQL Server Profiler.
21 авг 13, 09:32    [14734072]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка primari key в программе после востановления базы данных  [new]
Ruuu
Member

Откуда: Иркутск
Сообщений: 4272
alen132
Вы про данную программу имели ввиду? Data Profile Viewer
SQL Server Profiler
21 авг 13, 09:33    [14734079]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка primari key в программе после востановления базы данных  [new]
alen132
Member

Откуда:
Сообщений: 33
блин не запускается данная прога
21 авг 13, 09:33    [14734080]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка primari key в программе после востановления базы данных  [new]
alen132
Member

Откуда:
Сообщений: 33
alen132
блин не запускается данная прога
сори это было к прошлым собщениям ща сек
21 авг 13, 09:35    [14734093]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка primari key в программе после востановления базы данных  [new]
alen132
Member

Откуда:
Сообщений: 33
выдает ошибку данная таблица не существует или была создана не в приложении profiler
21 авг 13, 09:38    [14734109]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка primari key в программе после востановления базы данных  [new]
alen132
Member

Откуда:
Сообщений: 33
Вот это выдает в ПРОФИЛЕре когда возникает ошибка


exec akWOProdList1;1 18405,1
go
SET XACT_ABORT OFF
go
declare @p1 int
set @p1=1
declare @p2 bigint
set @p2=178258339605779
exec [sys].sp_getschemalock @p1 output,@p2 output,N'"ECBASE"."DBO"."DCConfig"'
select @p1, @p2
go
declare @p1 int
set @p1=7
exec sp_prepexec @p1 output,N'@P1 nvarchar(50),@P2 nvarchar(50),@P3 nvarchar(50),@P4 nvarchar(80)',N'SELECT "Tbl1002"."ParValue" "Col1021" FROM "ECBASE"."DBO"."DCConfig" "Tbl1002" WHERE "Tbl1002"."OwnerCod"=N''O'' AND "Tbl1002"."OwnerID"=(1) AND "Tbl1002"."Dir1"=@P1 AND "Tbl1002"."Dir2"=@P2 AND "Tbl1002"."Dir3"=@P3 AND "Tbl1002"."ParName"=@P4',N'WareHouse',N'',N'',N'DisableDuplicate'
select @p1
go
exec sp_unprepare 7
go
exec [sys].sp_releaseschemalock 1
go
exec sp_reset_connection
go
SET XACT_ABORT OFF
go
declare @p1 int
set @p1=1
declare @p2 bigint
set @p2=178258339605779
exec [sys].sp_getschemalock @p1 output,@p2 output,N'"ECBASE"."DBO"."DCConfig"'
select @p1, @p2
go
declare @p1 int
set @p1=8
exec sp_prepexec @p1 output,N'@P1 nvarchar(50),@P2 nvarchar(50),@P3 nvarchar(50),@P4 nvarchar(80)',N'SELECT "Tbl1002"."ParValue" "Col1021" FROM "ECBASE"."DBO"."DCConfig" "Tbl1002" WHERE "Tbl1002"."OwnerCod"=N''O'' AND "Tbl1002"."OwnerID"=(1) AND "Tbl1002"."Dir1"=@P1 AND "Tbl1002"."Dir2"=@P2 AND "Tbl1002"."Dir3"=@P3 AND "Tbl1002"."ParName"=@P4',N'WareHouse',N'',N'',N'InvNoAttention'
select @p1
go
exec sp_unprepare 8
go
exec [sys].sp_releaseschemalock 1
go
exec sp_reset_connection
go
declare @p9 int
set @p9=0
declare @p10 tinyint
set @p10=NULL
declare @p11 datetime
set @p11='2013-08-21 00:00:00'
exec sh_StartWriteOff;1 ',9710,',18405,0,267061,28,-5,1,0,@p9 output,@p10 output,@p11 output
select @p9, @p10, @p11
go
declare @p1 int
set @p1=19
exec sp_prepare @p1 output,NULL,N'SELECT * FROM DCLOGFILE WHERE 1=-1
',1
select @p1
go
exec sp_unprepare 19
go
SELECT * FROM DCLOGFILE WHERE 1=-1

go
exec sp_executesql N'SET NOCOUNT OFF; INSERT INTO "EcBase".."DCLOGFILE" ("LogCod","LogMessage","RoleID","TaskName","UserID","StationID","AddInfo") VALUES (@P1,@P2,@P3,@P4,@P5,@P6,@P7); SELECT SCOPE_IDENTITY() AS SCOPE_ID_COLUMN',N'@P1 varchar(3),@P2 varchar(255),@P3 int,@P4 varchar(16),@P5 int,@P6 int,@P7 text','Err','Нарушение "PK_SHXDocCodes" ограничения PRIMARY KEY. Невозможно вставить повторяющийся ключ в объект "dbo.SHXDocCodes"',118,'TWOPListForm',1,172,'============= ОТЛАДКА ===============
ActiveControl: Edit1
ActionInfo:
09:45:04.943 - TWOPListForm.ActionSign
09:43:18.208 - TWOPListForm.ActionSign
09:41:59.82 - TWOPListForm.ActionSign
09:40:23.936 - TWOPListForm.ActionSign
08:53:34.633 - TWOPListForm.ActionSign
08:53:29.647 - TFRMWOFF3230.ActionExec

AppContext:

Версия ПО: 3.0(538)
Версия Базы Данных: 3.0(538)
Версия ОС: Advanced Server SP2
BIOS: 062410 - 20100624 BIOS Date: 06/24/10 11:32:00 Ver: 08.00.15 BIOS Date: 06/24/10 11:32:00 Ver: 08.00.15 24.06.2010
============= ПАМЯТЬ ===============
Полный объем физической памяти: 4 294 967 295 Б
Доступно физической памяти: 2 417 889 280 Б
Процент использования памяти: 62%
Размер файла подкачки: Б
Процент использования файла подкачки: 0%
Всего виртуальной памяти: 2 147 352 576 Б
Доступно виртуальной памяти: 1 930 690 560 Б
Минимальный доступный адрес для приложений: 65 536
Максимальный доступный адрес для приложений: 2 147 418 111
TotalPageFileMemory: 4 294 967 295 Б
FreePageFileMemory: 4 294 967 295 Б
============== ДИСК ===============
Объем диска :395 243 941 888 Б
Всего свободно :314 737 639 424 Б
Доступно :314 737 639 424 Б
============ ПРОЦЕССЫ =============
21 авг 13, 09:49    [14734181]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка primari key в программе после востановления базы данных  [new]
alen132
Member

Откуда:
Сообщений: 33
я правильно понял что данные вставляются в базу ecbase и вылезает эта ошибка, просто база катороя полетела и была востановлена называется ISRESTAURANT
21 авг 13, 09:57    [14734239]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка primari key в программе после востановления базы данных  [new]
alen132
Member

Откуда:
Сообщений: 33
народ ну подскажите пожалуйста. куда копать и что попробовать сделать
21 авг 13, 10:11    [14734316]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка primari key в программе после востановления базы данных  [new]
Glory
Member

Откуда:
Сообщений: 104760
alen132
Вот это выдает в ПРОФИЛЕре когда возникает ошибка

Ошибка возникает после _одной_ конкретной команды. А не после "простыни" кода


alen132
народ ну подскажите пожалуйста. куда копать и что попробовать сделать

В сторону таблицы ECBASE"."DBO"."DCConfig. Которая расположена наверное в другой базе и наверное хранит последние значения для ключей
21 авг 13, 10:37    [14734465]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка primari key в программе после востановления базы данных  [new]
aleks2
Guest
alen132
народ ну подскажите пожалуйста. куда копать и что попробовать сделать


Ну, если допустить, что ты отловил ПРАВИЛЬНО свою ошибку -
exec sp_executesql N'SET NOCOUNT OFF; INSERT INTO "EcBase".."DCLOGFILE" ("LogCod","LogMessage","RoleID","TaskName","UserID","StationID","AddInfo") VALUES (@P1,@P2,@P3,@P4,@P5,@P6,@P7); SELECT SCOPE_IDENTITY() AS SCOPE_ID_COLUMN',N'@P1 varchar(3),@P2 varchar(255),@P3 int,@P4 varchar(16),@P5 int,@P6 int,@P7 text','Err','Нарушение "PK_SHXDocCodes" ограничения PRIMARY KEY. Невозможно вставить повторяющийся ключ в объект "dbo.SHXDocCodes"',118,'TWOPListForm',1,172,'============= ОТЛАДКА ===============

выполняешь ЭТО в SSMS. Шоб убедиться.

Далее медитируешь: чаво там не так PRIMARY KEY?
Извини, но мой хрустальный шар треснул и теперь неспособен даже показать: чо у тя там PRIMARY KEY?
21 авг 13, 10:40    [14734476]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка primari key в программе после востановления базы данных  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2396
alen132
народ ну подскажите пожалуйста. куда копать и что попробовать сделать

почитать хотя бы основы (что такое база, что такое таблица, как в нее данные попадают).
а то фраза "я правильно понял что данные вставляются в базу ecbase и вылезает эта ошибка" говорит о многом.
21 авг 13, 10:48    [14734510]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка primari key в программе после востановления базы данных  [new]
alen132
Member

Откуда:
Сообщений: 33
StarikNavy
alen132
народ ну подскажите пожалуйста. куда копать и что попробовать сделать

почитать хотя бы основы (что такое база, что такое таблица, как в нее данные попадают).
а то фраза "я правильно понял что данные вставляются в базу ecbase и вылезает эта ошибка" говорит о многом.

Я даже не буду спорить, в скл я баран, так как у меня совсем другая специализация. и можешь назвать меня как хочешь, но я попросил помощи потому что не разбераюсь, просто может кто то сталкивался и может помочь. Знаешь ведь бывает такое что друг или просто знакомый и даже не знакомый просит помощи и ему помогают. так вот и я попросил помощи, ведь если ты системщик а тебе надо сварить раму ты ведь попросишь кого нить что бы это сделали а не ты. И ты тоже будешь в такой ситуации каки я то бишь баран. Надо быть уважительней и нисходительней друг другу. А так как ближайший шарящий товаришь находится в 200 км от данного места а в этом поселке вобще нет системщиков. то мне что пойти удавится или все таки попросить добрых людей помочь и можеткто то отзовется.
21 авг 13, 11:29    [14734834]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка primari key в программе после востановления базы данных  [new]
Glory
Member

Откуда:
Сообщений: 104760
alen132
но я попросил помощи потому что не разбераюсь, просто может кто то сталкивался и может помочь.

У вас ошибка в логике вашей программы. Таких ошибок в миллион в день в разных программах.

alen132
. Надо быть уважительней и нисходительней друг другу. А так как ближайший шарящий товаришь находится в 200 км от данного места а в этом поселке вобще нет системщиков. то мне что пойти удавится или все таки попросить добрых людей помочь и можеткто то отзовется.

Т.е. надо купить билет, приехать к вам и просто молча все починить. Это будет типа тру помощь.
А то сами мы не местные, кошелек украли, на поезд опоздали....
21 авг 13, 11:33    [14734867]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка primari key в программе после востановления базы данных  [new]
alen132
Member

Откуда:
Сообщений: 33
Glory
alen132
но я попросил помощи потому что не разбераюсь, просто может кто то сталкивался и может помочь.

У вас ошибка в логике вашей программы. Таких ошибок в миллион в день в разных программах.

alen132
. Надо быть уважительней и нисходительней друг другу. А так как ближайший шарящий товаришь находится в 200 км от данного места а в этом поселке вобще нет системщиков. то мне что пойти удавится или все таки попросить добрых людей помочь и можеткто то отзовется.

Т.е. надо купить билет, приехать к вам и просто молча все починить. Это будет типа тру помощь.
А то сами мы не местные, кошелек украли, на поезд опоздали....


Я разве просил приехать. или сделать все за меня?. Хотя нет можете приехать, за одно поедим шашлычка отдохнем и т.д.
Вот второй раз я сюда обращаюсь за помощью, и в торой раз чувствую себя виноватым в чем то. что ж у Вас тут за любительство хамить и унижать тех кто понимает меньше в той области в которой вы понимаете больше. Интересно было бы когда вы приходя к врачу например выслушивали от него примерно следующие: Так вы больной вот вы говорите голова болит а вы знаете сколько болезней связано с голова болит, да вы батенька баран, почитайте книжки про болезни поймите чем то отлечается о том. а то "голова болит" о вас многое говорит. вобщем извиняйте как разберетеся что у вас за болезнь вы приходите и тогда посмотрим...... Вот примерно тоже самое сейчас вы продимонстрировали ко мне
21 авг 13, 11:40    [14734941]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка primari key в программе после востановления базы данных  [new]
Гость333
Member

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

Включите в профайлере трассировку событий SP:StmtStarting из группы Stored Procedures, SQL:StmtStarting из группы TSQL, а также Exception из группы Errors and Warnings. Найдите конкретную команду, которая даёт нарушение первичного ключа. Разберитесь, откуда эта команда берёт дублирующееся значения первичного ключа.
21 авг 13, 11:45    [14734984]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка primari key в программе после востановления базы данных  [new]
Glory
Member

Откуда:
Сообщений: 104760
alen132
Я разве просил приехать. или сделать все за меня?.

Нет, вы просто начинаете учить - что и как надо делать

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

Вот и незачем лезть туда, где вы не понимаете даже ответов

alen132
Интересно было бы когда вы приходя к врачу например выслушивали от него примерно следующие: Так вы больной вот вы говорите голова болит а вы знаете сколько болезней связано с голова болит, да вы батенька баран, почитайте книжки про болезни поймите чем то отлечается о том. а то "голова болит" о вас многое говорит. вобщем извиняйте как разберетеся что у вас за болезнь вы приходите и тогда посмотрим.....

Когда я прихожу к врачу, я не прошу его объяснить, как мне лечить себя. Или своего знакомого.
Типа, я тут куму топором руку отрубил. Помогите быстренько все исправить. А то я не специалист
21 авг 13, 11:46    [14734992]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка primari key в программе после востановления базы данных  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2396
alen132
и можешь назвать меня как хочешь,.

не имел желания вас обижать, и как то называть (нехорошими словами)

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

иначе вместо объяснений в стиле "возьми длинную штуковину, с крестом на конце и вставь в паз N2, после чего соверши руками вращательное движение", будет действительно проще съездить и починить все самому. но как вы понимает последнее нереально.
21 авг 13, 12:17    [14735218]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка primari key в программе после востановления базы данных  [new]
alen132
Member

Откуда:
Сообщений: 33
)))) я понимаю. ну народ поймите меня рядом нет не кого кто знал бы скл. А работа стоит.


Гость333 как вы сказали сделал. нашел следующие
INSERT INTO SHDocTitles (cmark, doctypeid, docdate, supplierid, receiverid, supmolid, recmolid, internalnumber, externalnumber, status,
creationdate, correctiondate, creatorid, correctorid, whsystemcreate, whsystemcorrect, paymenttype, docmemo)
VALUES (@CMark, @DocTypeId, @Date, @SupplierId, @ReceiverId, @SupMOLId, @RecMOLId, @IntN, @ExtN, @Status,
@XDate, @XDate, @User, @User, @WHSystem, @WHSystem, @Payment, @DocMemo)
INSERT INTO SHXDocCodes (doctitleid) SELECT doctitleid FROM inserted
после попытки добавление данных строк выскакиеват ошибка
Error: 2627, Severity: 14, State: 1 что по BOL соответствует моей ошибки
21 авг 13, 13:09    [14735687]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка primari key в программе после востановления базы данных  [new]
Glory
Member

Откуда:
Сообщений: 104760
alen132
я понимаю. ну народ поймите меня рядом нет не кого кто знал бы скл. А работа стоит.

Надавить на совесть не получилось ? Попробуем надавить на жалость



alen132
после попытки добавление данных строк выскакиеват ошибка

Еще раз. Не бывает одной ошибки для нескольких команд. Ошибка всегда для одной команды
И, судя по "Нарушение "PK_SHXDocCodes" ограничения PRIMARY KEY", это команда
INSERT INTO SHXDocCodes (doctitleid) SELECT doctitleid FROM inserted

Т.е. ваше приложение само добавляет некорректные данные.
Вот откуда оно берет эти данные вам и предстоит выяснить
21 авг 13, 13:18    [14735748]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка primari key в программе после востановления базы данных  [new]
alen132
Member

Откуда:
Сообщений: 33
Glory
alen132
я понимаю. ну народ поймите меня рядом нет не кого кто знал бы скл. А работа стоит.

Надавить на совесть не получилось ? Попробуем надавить на жалость



alen132
после попытки добавление данных строк выскакиеват ошибка

Еще раз. Не бывает одной ошибки для нескольких команд. Ошибка всегда для одной команды
И, судя по "Нарушение "PK_SHXDocCodes" ограничения PRIMARY KEY", это команда
INSERT INTO SHXDocCodes (doctitleid) SELECT doctitleid FROM inserted

Т.е. ваше приложение само добавляет некорректные данные.
Вот откуда оно берет эти данные вам и предстоит выяснить

тогда ответный вопрос, возможно ли если я обновлю программу данная ошибка возможно исчезнет?
21 авг 13, 13:23    [14735778]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка primari key в программе после востановления базы данных  [new]
Glory
Member

Откуда:
Сообщений: 104760
alen132
тогда ответный вопрос, возможно ли если я обновлю программу данная ошибка возможно исчезнет?

В смысле "обновлю программу" ?
Программист нашел баг для этой ошибки и прислал новую версию ?
21 авг 13, 13:28    [14735808]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка primari key в программе после востановления базы данных  [new]
alen132
Member

Откуда:
Сообщений: 33
суппорт когда я написал им о том что вылазиет данная ошибка после подения и востановления базы проверил базу на ошибки стандартной командой "dbcc checkdb", и так как не было выявленно ошибок базы сказал что востанавливайте базу из бекапа, а так как бэкап не кому делать (так как это не постоянное мое рабочее место)(есть последний бэкап от июня месяца данного года) то потеряется много данных. но на саму программу да есть обновление, выходит раз в полгода.
21 авг 13, 13:37    [14735857]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить