Заведу одну общую тему.
Итак: была процедура и функция, которая эту процедуру вызывала
Target.fdb
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
/******************************************************************************/
/*** Generated by IBExpert 2020.11.2.1 03.11.2020 12:08:21 ***/
/******************************************************************************/
/******************************************************************************/
/*** Following SET SQL DIALECT is just for the Database Comparer ***/
/******************************************************************************/
SET SQL DIALECT 3;
/******************************************************************************/
/*** Stored procedures ***/
/******************************************************************************/
SET TERM ^ ;
CREATE PROCEDURE "SP_TEST"
AS
BEGIN
EXIT;
END^
SET TERM ; ^
/******************************************************************************/
/*** Stored functions ***/
/******************************************************************************/
SET TERM ^ ;
CREATE FUNCTION "SF_TEST"
RETURNS INTEGER
AS
BEGIN
RETURN NULL;
END^
SET TERM ; ^
/******************************************************************************/
/*** Stored procedures ***/
/******************************************************************************/
SET TERM ^ ;
ALTER PROCEDURE "SP_TEST"
AS
BEGIN
EXIT;
END^
SET TERM ; ^
/******************************************************************************/
/*** Stored functions ***/
/******************************************************************************/
SET TERM ^ ;
ALTER FUNCTION "SF_TEST"
RETURNS INTEGER
AS
BEGIN
EXECUTE PROCEDURE sp_test;
RETURN 1;
END^
SET TERM ; ^
В новой версии базы оба объекта были удалены (Source.fdb пустая).
Компарер выдает такой скрипт
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
/* Server version: WI-V6.3.6.33328 Firebird 3.0
SQLDialect: 3. ODS: 12.0. Forced writes: On. Sweep interval: 20000.
Page size: 16384. Cache pages: 256 (4096 Kb). Read-only: False. */
SET CLIENTLIB 'fbclient.dll';
SET NAMES WIN1251;
SET SQL DIALECT 3;
CONNECT 'Server2:D:\DB\TEMP\Target.fdb' USER 'SYSDBA' PASSWORD 'masterkey';
SET AUTODDL ON;
/******************************************************************************/
/**** Dropping stored procedures ****/
/******************************************************************************/
DROP PROCEDURE SP_TEST;
/******************************************************************************/
/**** Dropping stored functions ****/
/******************************************************************************/
DROP FUNCTION SF_TEST;
При удалении процедуры получаю ошибкуThis operation is not defined for system tables.
unsuccessful metadata update.
cannot delete.
PROCEDURE SP_TEST.
there are 1 dependencies.
С уважением, Vasilisk