![]() |
![]() |
|
Кто поможет в SQL базе убить нужную запись? | ☑ | ||
---|---|---|---|---|
0
Капюшон
08.06.10
✎
20:01
|
Дело в том что версия 1с Управление торговлей была файловой и при отключении питания порушилась одна записьв таблице. При попытке открыть документ, из базы выбивало. Я уже открывал ветку на эту тему и решение было найдено. Единственное решение это перевести Базу на SQL версию и там внутри SQL сервера грохнуть запись, которая выдаётся в качестве ошибки. Ошибка возникает при "тестирование и исправление информационной базы
erver: Не удалось вставить значение NULL в столбец "_Fld4995_TYPE", таблицы "temp.dbo._Document203_VT4975NG"; в столбце запрещены значения NULL. Ошибка в INSERT. HRESULT=80040E2F, SQLSrvr: Error state=2, Severity=10, native=515, line=136 Как бы мне сейчас в SQL сервере грохнуть эту запись? |
|||
1
Дикообразко
08.06.10
✎
20:04
|
ну зайди и убей
|
|||
2
Fram
08.06.10
✎
20:04
|
(0) а chdbfl.exe не помогло на фаловой версии?
|
|||
3
iamnub
08.06.10
✎
20:04
|
Нет.
Судя по всему - не запись убивать надо. |
|||
4
Капюшон
08.06.10
✎
20:05
|
(2)не помогло. вобще ничего не помогало.
|
|||
5
Капюшон
08.06.10
✎
20:05
|
(3)а что тогда?
|
|||
6
Fram
08.06.10
✎
20:06
|
судя по ошибке не запись убивать надо а разрешить NULL в указанном столбце
|
|||
7
iamnub
08.06.10
✎
20:06
|
Тебе этот документ грохнуть надо.
У него одно из свойств - NULL, а NULL вставлять нельзя. Он при открытии пытается вставить какие-то значения во временную таблицу. Надо отловить - что он пытается вставить. И либо заполнить значение, либо грохнуть документ. |
|||
8
Fram
08.06.10
✎
20:06
|
(0) а что за объект узнал?
|
|||
9
iamnub
08.06.10
✎
20:07
|
(6)
Ага. Круто придумал. Я думаю, что нужно просто принудительно удалить документ. Насовсем. И все станет хорошо. |
|||
10
Капюшон
08.06.10
✎
20:08
|
(7)а каким образом этот документ грохнуть? любые попытки из режима 1с предприятия обратиться к нему приводят к выходу базы из строй. хоть пытаешься его пометить на удаление. хоть програмно пытаешься его удалить.
|
|||
11
Kashemir
08.06.10
✎
20:08
|
Судя по тексту ошибки, проблема с типе колонки табличной части документа _Document203, содержащий реквизит _Fld4995_TYPE.
|
|||
12
Fram
08.06.10
✎
20:09
|
(7) мне кажется у него база temp называется
|
|||
13
Капюшон
08.06.10
✎
20:09
|
(8) да. это объект "реализацияторваровуслуг". даже конкретно знаю какой документ это. но с ним программа ничего не даёт сделать. и не могу понять почему так.
|
|||
14
Капюшон
08.06.10
✎
20:10
|
(11)да. проблема есть. только я не могу этот документ удалить никак.
|
|||
15
Капюшон
08.06.10
✎
20:10
|
(12)да. база Temp называется в sql сервере.
|
|||
16
Капюшон
08.06.10
✎
20:10
|
(9)а как его принудительно удалить? он ведь не даёт ничего с собой сделать.
|
|||
17
Fram
08.06.10
✎
20:11
|
(9) я ж говорил ))
|
|||
18
iamnub
08.06.10
✎
20:11
|
Удали из SQL-ля.
Из таблицы шапок и из таблиц табличной части. |
|||
19
Kashemir
08.06.10
✎
20:11
|
(16) А если грохнуть реквизит, предарительно создав временный и слив туда всю инфу раннее содержащуюся в старом ?
|
|||
20
Fram
08.06.10
✎
20:12
|
(18) знал бы он еще какая запись
|
|||
21
Капюшон
08.06.10
✎
20:14
|
(19)попробую сейчас грохнуть этот реквизит
|
|||
22
Fram
08.06.10
✎
20:14
|
(21) а (6) не хочешь попробовать?
|
|||
23
Капюшон
08.06.10
✎
20:14
|
(18)а вот как действительно сделать это?
|
|||
24
Капюшон
08.06.10
✎
20:15
|
(22)тоже хочу. только не знаю как. щас буду думать
|
|||
25
Fram
08.06.10
✎
20:16
|
(23) если знаешь ключ записи то без проблем
|
|||
26
iamnub
08.06.10
✎
20:16
|
Поле Fld4995
Таблица Document203 Значение NULL (22) Да таблица может на лету создаваться - как он разрешит?? |
|||
27
Fram
08.06.10
✎
20:16
|
(24) никогда не создавал и не редактировал таблицы в MS SQL
|
|||
28
Fram
08.06.10
✎
20:16
|
+ (24) ?
|
|||
29
iamnub
08.06.10
✎
20:19
|
SELECT * FROM Document203
WHERE Fld4995 IS NULL И смотри что за запись. Названия могут отличаться - надо смотреть |
|||
30
Fram
08.06.10
✎
20:22
|
а почему интересно ТиИ пытается в эту таблицу запись добавить?
|
|||
31
Fram
08.06.10
✎
20:22
|
(29) думаешь такая запись там есть?
|
|||
32
levlvov
08.06.10
✎
20:23
|
нука пустите меня в базу, счас я там поудаляю все на х***...
|
|||
33
Kashemir
08.06.10
✎
20:24
|
(29) Вобщем то таблица _Document203_VT4975NG - это табличная часть документа _Document203
|
|||
34
Ковычки
08.06.10
✎
20:24
|
(3) автора что ли ?
|
|||
35
iamnub
08.06.10
✎
20:25
|
(30)
В качестве предположения - он сначала копирует все в темп - а потом шуршит там. ЧТоб типа не сразу в основной. (33) Тем лучше. (34) LOL (32) )))))))))))))) Пустите нас всех в базу - мы сделаем все красиво! |
|||
36
Капюшон
08.06.10
✎
20:25
|
(33)а вот как бы эту табличную часть грохнуть?
|
|||
37
iamnub
08.06.10
✎
20:26
|
(36)
Ты не торопись грохать-то!!! Что в реквизите Fld4995? |
|||
38
Капюшон
08.06.10
✎
20:28
|
(37)там надпись "двоичные данные"
|
|||
39
Ковычки
08.06.10
✎
20:29
|
замени во всех таблицах нулл на "пусто" в зависимости от типа поля
|
|||
40
iamnub
08.06.10
✎
20:30
|
Запости сюда ID
|
|||
41
iamnub
08.06.10
✎
20:30
|
ID документа
|
|||
42
Fram
08.06.10
✎
20:30
|
(38) а в структуре метаданных что это за поле?
|
|||
43
Kashemir
08.06.10
✎
20:31
|
(36) Вряд ли поможет, проблема имхо в том, что конфигурация содержит инфу о том что данная колонка может содержать значения типа NULL в отличии от фактической.
|
|||
44
Капюшон
08.06.10
✎
20:31
|
(41)_Document203_VT4975
(42)ЗначениеУсловияАвтоматическойСкидки |
|||
45
iamnub
08.06.10
✎
20:32
|
(44)
ID документа, а не название таблицы. Как найти ID - смотри (29) |
|||
46
Kashemir
08.06.10
✎
20:36
|
(44) Какое значение колонки в SQL у свойства "Разрешить неопределенные значений" ?
|
|||
47
Капюшон
08.06.10
✎
20:37
|
(45)Сообщение 208, уровень 16, состояние 1, строка 1
Недопустимое имя объекта "Document203". |
|||
48
Капюшон
08.06.10
✎
20:38
|
(46)true там стоит теперь. я поменял. но всеравно выбивает
|
|||
49
iamnub
08.06.10
✎
20:38
|
(47)
Ну ты дал. Названия-то нао заменить на реальные - я ж схематично! |
|||
50
Kashemir
08.06.10
✎
20:38
|
(47) Вобщем-то вот так не будет выбивать
SELECT * FROM _Document203_VT4975 WHERE _Fld4995_TYPE IS NULL |
|||
51
Капюшон
08.06.10
✎
20:43
|
(49)
SELECT * FROM _Document203_VT4975 WHERE _Fld4995_TYPE IS NULL не выдал ни одной записи а запрос SELECT * FROM _Document203_VT4975 WHERE _Fld4995_TYPE IS not NULL выдал кучу записей. и везде в поле стояло значение 0х01 |
|||
52
iamnub
08.06.10
✎
20:46
|
SELECT DISTINCT _Fld4995_TYPE FROM _Document203_VT4975
|
|||
53
Капюшон
08.06.10
✎
20:48
|
(52)ВЫДАЛ две записи. одна 0х00 а вторая 0х01
|
|||
54
Капюшон
08.06.10
✎
20:48
|
(52)вы здорово разбираетесь! спасибо!
|
|||
55
iamnub
08.06.10
✎
20:49
|
Все получилось?
|
|||
56
Капюшон
08.06.10
✎
20:49
|
(55)не всё! просто он показал что гдето есть нулевое значение. а сейчас попытаюсь запрос переделать чтобы выйти на нужную запись
|
|||
57
Kashemir
08.06.10
✎
20:49
|
(55) А что могло получится :) Тип бинари это и есть значения 0х00 и 0х01 :)
|
|||
58
Капюшон
08.06.10
✎
20:50
|
(55)и ещё както её удалить нужно. А ещё паралельно пытаюсь взять конфигурацию УТ того же релиза типовую и сделать "загрузить конфигурацию". может поможет?
|
|||
59
iamnub
08.06.10
✎
20:50
|
(57)
Я бы изменил 0x00 на 0x01 |
|||
60
Kashemir
08.06.10
✎
20:51
|
(57) Когда наиграешся ... предлагаю вернуться к (19). Проблема скорее в конфигурации, а не данных.
|
|||
61
iamnub
08.06.10
✎
20:53
|
(60)
Зависит от. Хотя база скорее всего маленькая - раз была в файловом варианте. Грохнуть реквизит, потом его создать и? Перезаписать все документы? Перепровести? А сколько их там? Проще тогда проставить нужный опять-таки скульным запросом. То есть - те же "игры" |
|||
62
Капюшон
08.06.10
✎
20:54
|
(61)база 350 метров. в ней документы за 2010 год. но их немало.
|
|||
63
Капюшон
08.06.10
✎
20:54
|
(61)а помогите пожалуйста запросом поменять значения?
|
|||
64
iamnub
08.06.10
✎
20:55
|
(63)
ЩАЗ |
|||
65
iamnub
08.06.10
✎
20:56
|
ЧТо выдаст
SELECT TOP 1 _Fld4995_TYPE FROM _Document203_VT4975 |
|||
66
Капюшон
08.06.10
✎
20:58
|
(65)0х01
|
|||
67
Kashemir
08.06.10
✎
20:58
|
(61) Зачем же перепроводить. Достаточно перезаписать.
|
|||
68
iamnub
08.06.10
✎
20:58
|
UPDATE _Document203_VT4975
SET _Fld4995_TYPE = (SELECT TOP 1 _Fld4995_TYPE FROM _Document203_VT4975) Но смотри - ты начинаешь изменять базу. Надо делать на копии. |
|||
69
iamnub
08.06.10
✎
20:59
|
(67)
Откуда ж я знаю - что у вас там. Может этот реквизит черте где участвует. |
|||
70
Капюшон
08.06.10
✎
21:01
|
(68)кстати я нашел эти поганые нулевые значения знаете как?
SELECT * FROM _Document203_VT4975 order by _Fld4995_TYPE только ручками не смог их изменить |
|||
71
iamnub
08.06.10
✎
21:03
|
(70)
В (68) запрос которые изменит данные |
|||
72
Капюшон
08.06.10
✎
21:04
|
(71)он поменял данные! крутой запрос. а из базы всеравно выбивает (( а вобще как можно убить этот документ? он ведь единственный кто вызывает проблему
|
|||
73
Kashemir
08.06.10
✎
21:04
|
Лана вот вам на закусь :)
Типы полей ,хранящие значения составного типа : ... Суффикс _TYPE Тип поля BINARY(1) Когда присутсвуюет: всегда Назначение: Содержит идентификатор фактического типа: Булево, Число, Строка, Дата или ссылка. ... |
|||
74
borozavr
08.06.10
✎
21:06
|
(70) да поменяй через энтерпрайз менеджер
|
|||
75
Капюшон
08.06.10
✎
21:08
|
Я ещё сейчас взял. из типовой конфигурации cf файл и загрузил его через конфигуратор как "загрузить конфигурацию". может поможет?
|
|||
76
iamnub
08.06.10
✎
21:08
|
(72)
Хм. Дело в следующем реквизите? |
|||
77
iamnub
08.06.10
✎
21:10
|
(75)
Ну ты ЖЖОЖ. База-то типовая? Судя по всему - как ты лихо менял в конфигурации - она НЕ типовая |
|||
78
Капюшон
08.06.10
✎
21:11
|
(77)ну конфигурация с дописками но я их восстановлю. это не так страшно. просто мне важно понять как решить проблему.
|
|||
79
iamnub
08.06.10
✎
21:11
|
Запусти сейчас ТиИ
|
|||
80
iamnub
08.06.10
✎
21:12
|
Из базы может выбивать по разным причинам.
Но проблему вылета ТИИ мы сейчас вроде как устранили. |
|||
81
Капюшон
08.06.10
✎
21:12
|
(80)а что такое ТИИ ?
|
|||
82
Капюшон
08.06.10
✎
21:13
|
ааа понял
|
|||
83
Капюшон
08.06.10
✎
21:13
|
запустил
|
|||
84
iamnub
08.06.10
✎
21:15
|
(78)
Дописки <> изменения структуры метаданных. Можно очень круто влететь. |
|||
85
Капюшон
08.06.10
✎
21:18
|
(84)вот представляете. он в ТИИ дошел до этого документа и выдал что нарушена в этом документе нумерация строк табличной части и что типа она восстановлена теперь. Вот проверим как будет сейчас запускаться
|
|||
86
Капюшон
08.06.10
✎
21:21
|
И ещё ТИИ прям для этого документа во всех регистрах. которые он двигал выдавала ошибки.
|
|||
87
iamnub
08.06.10
✎
21:23
|
И что в итоге-то?
|
|||
88
Капюшон
08.06.10
✎
21:25
|
(87)досихпор тестирование и исправление идёт. сейчас уж закончится.
|
|||
89
Капюшон
08.06.10
✎
21:29
|
(87). эх вот что теперь
В процессе обновления информационной базы произошла критическая ошибка. по причине: Ошибка СУБД: Microsoft OLE DB Provider for SQL Server: Не удалось вставить значение NULL в столбец "_Fld7566_TYPE", таблицы "temp.dbo._AccumRegTurnovers7584NG"; в столбце запрещены значения NULL. Ошибка в INSERT. HRESULT=80040E2F, SQLSrvr: Error state=2, Severity=10, native=515, line=1 |
|||
90
Капюшон
08.06.10
✎
21:30
|
(89)похоже также лечится проблема
|
|||
91
Капюшон
08.06.10
✎
21:40
|
(87)всё. спасибо вам большое! очень помогли. на том документе уже не выкидывает. а дальше уж я сам смогу. или на край завтра помогут
|
|||
92
iamnub
08.06.10
✎
21:56
|
(91)
))))))) |
|||
93
Капюшон
08.06.10
✎
22:54
|
вот ещё
UPDATE _AccumRegTurnovers7584 SET _Fld7566_TYPE = (SELECT TOP 1 _Fld7566_TYPE FROM _AccumRegTurnovers7584) |
|||
94
Fram
08.06.10
✎
23:16
|
(92) а че ты радуешься? ему помогло то что NULL разрешил, поэтому у него ТиИ прошло
|
|||
95
Fram
08.06.10
✎
23:19
|
+(92) это следует из (0) + (6) + (48) + (85)
(93) продолжай разрешать NULL на ругающиеся столбцы.. |
|||
96
Fram
08.06.10
✎
23:20
|
+(95) только не забудь потом вернуть как было
|
|||
97
levlvov
08.06.10
✎
23:24
|
танцы с бубенцами ище продолжаются?
|
|||
98
iamnub
08.06.10
✎
23:29
|
(94)
У тебя проблемы с моей радостью? Я радуюсь, что у человека все получилось. А свое "че" засунь себе в очо. Доступно? |
|||
99
Fram
08.06.10
✎
23:30
|
(98) обиделся что ли? ))
|
|||
100
eklmn
гуру
08.06.10
✎
23:31
|
сто!
|
|||
101
iamnub
08.06.10
✎
23:31
|
(93)
Слушай. Ты так запросы-то не хреначь бездумно, не соображая, что ты делаешь. (99) Ты лучше подскажи ему, как разрешить NULL на _AccumRegTurnovers7584NG - вот эту таблицу. "обиделся что ли? ))" - да ну что ты - просто стараюсь соответствовать. Изо всех сил. |
|||
102
iamnub
08.06.10
✎
23:34
|
(93)
Попробуй перепровести проблемный документ, а потом опять ТиИ. |
|||
103
Fram
08.06.10
✎
23:44
|
(101) ну так же как он это сделал в прошлый раз
|
|||
104
Капюшон
08.06.10
✎
23:53
|
(101)а я просто решил регистр "продажи" грохнуть. через SQL. потомучто база хорошая. с 2010 года в ней только документы. Я её всеравно хотел перепровести. вот и повод хороший. пусть регистры перезаполнятся. Надеюсь новые косяки сейчас не всплывут. Я до сих пор ТИИ делаю
|
|||
105
Капюшон
08.06.10
✎
23:56
|
(102)а вот что. Скажите пожалуйста. Такая проблема могла у меня возникнуть по причине, Что было дело, я ТиИ делал с параметрами "очищать ссылки", "удалять объекты" ?
|
|||
106
Капюшон
09.06.10
✎
00:01
|
Сегодня благодаря этой проблеме и благодаря веткам, которые я насоздавал, а главное благодаря людям из этой ветки, особенно (102), я научился пользоваться SQL сервером, как инструментарием. Sql я конечно знаю чудчуть, но MS SQL сервер так за долгие годы карьеры не юзал. а сегодня научился файловую версию на SQL переводить и вот такие вот проблемы решать
|
|||
107
Капюшон
09.06.10
✎
00:02
|
хорошо что добрые люди не знают. что у меня ник "Еврейчик" есть ещё. ато бы наврядли они мне подсказали...
|
|||
108
iamnub
09.06.10
✎
00:02
|
(107)
Знаем-знаем. ))))) |
|||
109
iamnub
09.06.10
✎
00:04
|
(105)
Нет. |
|||
110
Капюшон
09.06.10
✎
00:05
|
рассекретили) даже фотка моего друга в инфе не спасла
|
|||
111
iamnub
09.06.10
✎
00:06
|
(106)
Да ну... Уметь админить SQL-сервак - это скил такой некислый. Там еще столько всего. Индексы, бекапы, статистика, транзакции... Это все в первом приближении; тебе это надо срочно поднимать. |
|||
112
iamnub
09.06.10
✎
00:08
|
И еще к научился - в (93) просто аховая жестяная жесть!
|
|||
113
Капюшон
09.06.10
✎
00:08
|
(111)похоже придётся. Люди уже на восьмерке сидят в основном, а объёмы баз всё растут и растут. Просто не приходилось сталкиваться. Все както на файловых версиях сидели и SQL не желали покупать. она дороже стоила. А в Москве вон у знакомых прогеров, постоянно необходимость возникала всякие TSQL и просто SQL юзать чтоб ускорять всё в больших базах
|
|||
114
Капюшон
09.06.10
✎
00:09
|
(112)ну потом пришлось вот что сделать
delete from _AccumRegTurnovers7584 delete from _AccumReg7563 delete from _AccumRegChangeRec7585 таким образом весь регистр грохнул |
|||
115
iamnub
09.06.10
✎
00:14
|
(113)
всякие TSQL и просто SQL (вздыхает) Срочно в магаз за книжкой. |
|||
116
Капюшон
09.06.10
✎
00:16
|
(115)ну я полагаю первое относится к 1С++ - прямые запросы ну а второе - это просто sql версия 1с. где можно для оптимизации отчетов sql использовать? ну типа того.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |