|
v7: Скрипт для удаления таблиц регистров в скуле | ☑ | ||
---|---|---|---|---|
0
Злопчинский
18.10.14
✎
17:06
|
Поможет кто?
Нужен скульный скрипт для очистки скульной 7.7базы в одном варианте 1. удаление самих таблиц регистров (RG и RA) во втором варианте 2. удаление записей в таблицах регистров . сам - ламер. может бытьи осилил бы, но перебрать таблицы регистров - уже все... Спсб. писать можно сюда. |
|||
1
МихаилМ
18.10.14
✎
17:12
|
||||
2
Злопчинский
18.10.14
✎
17:24
|
(1) я ламер в скуле для меня - разобрать немного написанного - еще осилю.
но сидеть сейчас огромную кучу изучатть - пок ане могу.. ;-) |
|||
3
romix
18.10.14
✎
17:39
|
Насчет очистки RG - пересчет итогов не предлагать?
|
|||
4
romix
18.10.14
✎
17:40
|
Можно убить сами метаданные, а потом их вернуть.
|
|||
5
mehfk
18.10.14
✎
17:51
|
>> 2. удаление записей в таблицах регистров
Удалить некоторые записи или полностью очистить конкретные таблицы? |
|||
6
ProxyInspector
18.10.14
✎
17:54
|
У меня есть для 1С++ Пометка на удаление документов. Очистка движений по этим документам. Раз в 100 ускоряет свертку базы.
Если немного допилишь, то можешь удалять записи своих регистров. |
|||
7
КонецЦикла
18.10.14
✎
21:08
|
Вот же ленивая зараза... :)
Перебор через метаданные, затем получение id, добавляешь RG, RA и проч. и все |
|||
8
Classic
18.10.14
✎
22:02
|
подзабыл 7ку. Разве в dds-е имент таблиц нет? Дальше обычный drop table. Или как-то так. Гугл за минуту текст удаления таблицы даст.
|
|||
9
Classic
18.10.14
✎
22:05
|
(4) имхоется мне, что не прокатит. Разве что потом руцями добавить регистры, а не через объединение.
|
|||
10
Sorm
18.10.14
✎
22:13
|
(0) Удаление таблицы
Drop table Имя_таблицы Удаление строк Delete from Имя таблицы. Какие там у тебя регистры - сам смотри. |
|||
11
Злопчинский
19.10.14
✎
09:15
|
По сути, в скуле надо сделать "очистку" базы - оставив только справочник - то есть убить все доки. на дбфе - это понятно как. а на скуле - слаб я ( ну не было у меня скуля, не было!! а там когда было - не было надобности что-то существенно ускорять/колбасить, а сейчас приходится разгребать гуаны доставшиеся в нгаследство у клиента одного. вдобавок утяжелено все урбд, неснастроенными толклм миграциями (в справочнике пользователй и полномочий - толпень дикая дублей, только с разными местами создания) - вот потихоньку разгребаю...
|
|||
12
Злопчинский
19.10.14
✎
09:15
|
Спасибо всем кто помогает, невзирая на мою злопчинкость.
|
|||
13
vcv
19.10.14
✎
19:15
|
Можно что-то примерно такое (для очистки всех таблиц документов):
DECLARE @TableName char(32) DECLARE @query nchar(1000) DECLARE TablesList CURSOR FOR SELECT name FROM sysobjects WHERE type='U' and (name like 'DH%' or name like 'DT%') OPEN TablesList FETCH NEXT FROM TablesList INTO @TableName WHILE @@FETCH_STATUS=0 BEGIN set @query = 'DELETE FROM '+@TableName exec sp_executesql @query OUTPUT FETCH NEXT FROM TablesList INTO @TableName END CLOSE TablesList DEALLOCATE TablesList |
|||
14
пипец
19.10.14
✎
19:29
|
||||
15
France
19.10.14
✎
20:52
|
1. Выгрузить в дбф, удалить привычным способом, вернуть все взад на скл
2. Удалить из конфигуратор и затем вернуть 3. Использовать выгрузказагрузкахмл |
|||
16
Злопчинский
20.10.14
✎
19:42
|
(15)
1. долго 2. долго и просто так не удалишь - то в графах отболров то еще где.. 3. вычеркиваем сразу. это тааакой тормоз этот иксемель, что только под страхом пытки.. |
|||
17
Вяйнемейнен
20.10.14
✎
20:16
|
USE Base_Name;
Declare @CurrentTable nVarChar(128) Declare @StrSQL VarChar(2000) Declare ListTables Cursor For Select Table_Name = Table_Name From INFORMATION_SCHEMA.TABLES Where (Table_Name like 'RA%') OR (Table_Name like 'RG%') Order by 1 Open ListTables Fetch ListTables Into @CurrentTable While @@Fetch_Status = 0 Begin /* Удаление таблиц */ Set @StrSQL = 'DROP TABLE dbo.' + @CurrentTable Exec (@StrSQL) /* Удаление строк */ Set @StrSQL = 'DELETE FROM dbo.' + @CurrentTable Exec (@StrSQL) Fetch ListTables Into @CurrentTable End Close ListTables Deallocate ListTables |
|||
18
vcv
20.10.14
✎
20:34
|
(17) Гламурненько. Сначала дропаем таблицу, потом удаляем из неё строки. Эдакое контрольное изнасилование в голову :)
|
|||
19
Злопчинский
20.10.14
✎
21:08
|
меня во всех этих скриптах здесь опубликованных смущает - вследствие моего неведения или поверхностного осмотра - а как определяется что RA удаляется из нужной скульной базы - ведь там может буть туева хуча скульных баз - и удалять нужно только в конкретной - одной конкретной, например со сульным именем МyBase
??? |
|||
20
КонецЦикла
20.10.14
✎
21:37
|
Пиши на почту - сделаю тебе удобную обработку :)
Ничего не наскребешь ты тут готового А токмо загадят злорадствуя базы тебе пакостники... |
|||
21
vcv
20.10.14
✎
21:50
|
(19) Ну воткни первой строчкой
Use MyBase А вообще то, традиционно, любое средство, через которое будешь исполнять SQL-запрос, имеет понятие текущей базы. |
|||
22
France
20.10.14
✎
22:13
|
(16) 1. согласен, если база на 77 "ойкакаябольшая".
2.возможно... 3. 5-7 гиг базы за минут 10-15 переносятся.. которые на 8.2 вообще, и БП 2.0 в частности... про 77 не скажу, не пробовал.. ссд диск и 8 гиг памяти с кореВай5 тебе в помощь.. |
|||
23
Злопчинский
20.10.14
✎
23:52
|
перенос через иксемель, который из тиса штатно грузил проводки/документы в бухию 7.7 файл обмена размером в раЙОНЕ 16-25 мег - загрузку в бухиб приходилось ожидать часами. с тех пор я люто ненавижу всякие универсальные обмены, особенно по иксемеле.
|
|||
24
Злопчинский
20.10.14
✎
23:54
|
(20) я подумаю.. ;-) в принципе я-то справляюсь и в студии ручками по удалению регистров, а доки в 1с уже штатно проходят ощутимо быстрее.. так что это не очень сильно жмет.. ноя подумаю.. ;-)
|
|||
25
Злопчинский
20.10.14
✎
23:55
|
(21) традиционно - в 1с всегда была фирма по умолчанию или склад по умолчанию для текущего юзверя. ну и где они в этих клятущих УТ11-ых? ;-) поэтому умолчания - это конечно хорошо, но лучше держать на контроле
|
|||
26
Вяйнемейнен
21.10.14
✎
02:35
|
(18) автор просил скрипт либо удаления строк, либо всей таблицы - сам закомментирует лишнее.
Если нужно очистить базу, оставив только справочники, то вот примерный скрипт (для баз с бухгалтерией и оперативным учетом, для компоненты расчет нужно еще добавить удаление таблиц журналов расчетов) USE Base_Name; Declare @CurrentTable nVarChar(128) Declare @StrSQL VarChar(2000) Declare ListTables Cursor For Select Table_Name = Table_Name From INFORMATION_SCHEMA.TABLES Where ( (Table_Name = '_1SENTRY') OR (Table_Name = '_1SOPER') OR (Table_Name = '_1SJOURN') OR (Table_Name = '_1SACCSEL') OR (Table_Name = '_1SSBSEL') OR (Table_Name = '_1SBKTTL') OR (Table_Name = '_1SBKTTLC') OR (Table_Name = '_1SCRDOC') OR (Table_Name = '_1SUPDTS') OR (Table_Name LIKE 'DH%') OR (Table_Name LIKE 'DT%') OR (Table_Name LIKE 'RA%') OR (Table_Name LIKE 'RG%') ) Order by 1 Open ListTables Fetch ListTables Into @CurrentTable While @@Fetch_Status = 0 Begin Print @CurrentTable /* удаление строк */ Set @StrSQL = 'DELETE FROM dbo.' + @CurrentTable /* либо удаление таблицы Set @StrSQL = 'DROP TABLE dbo.' + @CurrentTable */ Exec (@StrSQL) Fetch ListTables Into @CurrentTable End Close ListTables Deallocate ListTables /* удаление констант и периодических реквизитов, установленных документами*/ Set @StrSQL = 'DELETE FROM dbo._1SCONST WHERE (NOT DOCID = '' 0 '') AND (NOT ACTNO = 0)'; Exec (@StrSQL); |
|||
27
France
21.10.14
✎
02:45
|
(25) а, нэту.. Все через соглашения
|
|||
28
Злопчинский
21.10.14
✎
03:10
|
(26) "папа, это ты сечас с кем разговаривал?" ;-)
. спасибо, буду втыкать.. . где почитать про общее понимание про INFORMATION_SCHEMA.TABLES dbo.' + @CurrentTable . так-то я как собака понимаю .. вроде.. но говорить не могу... ;-) |
|||
29
Escander
21.10.14
✎
04:05
|
(28) не боишься, что будет потеряна логическая целостность?
и ещё, я-бы смотре не в сторону Delete а Truncate. На покури https://ru.wikipedia.org/wiki/Truncate_(SQL) |
|||
30
Escander
21.10.14
✎
04:07
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |