mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-27 04:25:59 +00:00
feat: add mssql triggers to analyser
This commit is contained in:
@@ -214,12 +214,26 @@ class MsSqlAnalyser extends DatabaseAnalyser {
|
|||||||
parameters: functionToParameters[row.objectId],
|
parameters: functionToParameters[row.objectId],
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
const triggerRows = await this.analyserQuery('triggers');
|
||||||
|
|
||||||
|
const triggers = triggerRows.rows.map(row => ({
|
||||||
|
objectId: `triggers:${row.objectId}`,
|
||||||
|
contentHash: row.modifyDate && row.modifyDate.toISOString(),
|
||||||
|
createSql: row.definition,
|
||||||
|
triggerTiming: row.triggerTiming,
|
||||||
|
eventType: row.eventType,
|
||||||
|
schemaName: row.schemaName,
|
||||||
|
tableName: row.tableName,
|
||||||
|
triggerName: row.triggerName,
|
||||||
|
}));
|
||||||
|
|
||||||
this.feedback({ analysingMessage: null });
|
this.feedback({ analysingMessage: null });
|
||||||
return {
|
return {
|
||||||
tables,
|
tables,
|
||||||
views,
|
views,
|
||||||
procedures,
|
procedures,
|
||||||
functions,
|
functions,
|
||||||
|
triggers,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ const functionParameters = require('./functionParameters');
|
|||||||
const viewColumns = require('./viewColumns');
|
const viewColumns = require('./viewColumns');
|
||||||
const indexes = require('./indexes');
|
const indexes = require('./indexes');
|
||||||
const indexcols = require('./indexcols');
|
const indexcols = require('./indexcols');
|
||||||
|
const triggers = require('./triggers');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
columns,
|
columns,
|
||||||
@@ -28,4 +29,5 @@ module.exports = {
|
|||||||
indexes,
|
indexes,
|
||||||
indexcols,
|
indexcols,
|
||||||
tableSizes,
|
tableSizes,
|
||||||
|
triggers,
|
||||||
};
|
};
|
||||||
|
|||||||
28
plugins/dbgate-plugin-mssql/src/backend/sql/triggers.js
Normal file
28
plugins/dbgate-plugin-mssql/src/backend/sql/triggers.js
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
module.exports = `
|
||||||
|
SELECT
|
||||||
|
o.modify_date as modifyDate,
|
||||||
|
o.object_id as objectId,
|
||||||
|
o.name AS triggerName,
|
||||||
|
s.name AS schemaName,
|
||||||
|
OBJECT_NAME(o.parent_object_id) AS tableName,
|
||||||
|
CASE
|
||||||
|
WHEN OBJECTPROPERTY(o.object_id, 'ExecIsAfterTrigger') = 1 THEN 'AFTER'
|
||||||
|
WHEN OBJECTPROPERTY(o.object_id, 'ExecIsInsteadOfTrigger') = 1 THEN 'INSTEAD OF'
|
||||||
|
ELSE 'BEFORE'
|
||||||
|
END AS triggerTiming,
|
||||||
|
CASE
|
||||||
|
WHEN OBJECTPROPERTY(o.object_id, 'ExecIsInsertTrigger') = 1 THEN 'INSERT'
|
||||||
|
WHEN OBJECTPROPERTY(o.object_id, 'ExecIsUpdateTrigger') = 1 THEN 'UPDATE'
|
||||||
|
WHEN OBJECTPROPERTY(o.object_id, 'ExecIsDeleteTrigger') = 1 THEN 'DELETE'
|
||||||
|
END AS triggerEvent,
|
||||||
|
OBJECT_DEFINITION(o.object_id) AS definition
|
||||||
|
FROM sys.objects o
|
||||||
|
INNER JOIN sys.tables t
|
||||||
|
ON o.parent_object_id = t.object_id
|
||||||
|
INNER JOIN sys.schemas s
|
||||||
|
ON t.schema_id = s.schema_id
|
||||||
|
WHERE o.type = 'TR'
|
||||||
|
AND o.is_ms_shipped = 0
|
||||||
|
AND o.object_id =OBJECT_ID_CONDITION
|
||||||
|
AND s.name =SCHEMA_NAME_CONDITION
|
||||||
|
`;
|
||||||
Reference in New Issue
Block a user