|
v7: Как сравнить параметры полей SQL двух таблиц базы ? |
☑ |
0
Холст
03.08.20
✎
17:30
|
Есть две базы SQL для 1С 7.7
у них одинаковые таблицы, например SC172, но состав полей отличается (разная длина реквизитов или где-то нет какого-то поля)
Каким SQL запросом можно сравнить параметры полей этих таблиц, чтобы увидеть отличия ? файла *.dds и *.MD нет чтобы сравнить средствами конфигуратора 1С
Может у кого есть готовый скрипт
|
|
1
Холст
03.08.20
✎
17:32
|
Цель - восстановление базы 1С по базе данных SQL без файла MD/DDS но с похожими типовыми файлами
|
|
2
trdm
03.08.20
✎
17:35
|
Вытащи схему БД с SQL сервера и сравни.
|
|
3
trdm
03.08.20
✎
17:40
|
|
|
4
lEvGl
гуру
03.08.20
✎
17:41
|
в 8 в скл есть таблица со списком и описанием таблиц, в 7.7 тоже должны быть
|
|
5
Ёпрст
гуру
03.08.20
✎
17:44
|
Где то валялся готовый скрипт, надо поискать
|
|
6
Ёпрст
гуру
03.08.20
✎
17:53
|
Ну и..тупо на копии подсовываешь левый мд и словарик и делаешь Тии без исправления только с одной галкой, он те покажет , какие поля не те
|
|
7
Ёпрст
гуру
03.08.20
✎
17:53
|
Хотя, скриптом в скуле мгновенно получишь это
|
|
8
Холст
03.08.20
✎
17:59
|
Пока полувручную в обоих базах запрос
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE 1=1
AND TABLE_NAME = 'SC172' --Имя таблицы
Order by TABLE_NAME
|
|
9
Ёпрст
гуру
03.08.20
✎
18:09
|
(8) ну дык , в INFORMATION_SCHEMA.COLUMNS же всё есть, сравнивай, где table_name одинаковый в обеих базах, а data_type разный
|
|
10
Ёпрст
гуру
03.08.20
✎
18:33
|
SELECT t1.TABLE_NAME,t1.COLUMN_NAME,
t2.TABLE_NAME,t2.COLUMN_NAME
FROM base1.INFORMATION_SCHEMA.COLUMNS as t1
full outer join base2.INFORMATION_SCHEMA.COLUMNS as t2 on t1.TABLE_NAME = t2.TABLE_NAME and t1.DATA_TYPE = t2.DATA_TYPE and t1.COLUMN_NAME=t2.COLUMN_NAME
where t1.TABLE_NAME is null or t2.TABLE_NAME is null
|
|
11
trdm
03.08.20
✎
19:27
|
(8) Это долго. можно схему вытащить как в (3) и сравнить KDiff-om.
а так долго провозишся.
|
|
12
Ёпрст
гуру
03.08.20
✎
22:03
|
(11) да ну..запрос в (10) на упп базе миллисекунды выполняется
|
|