Files
workspace/code/fms/fms-api/config/migrations/verify_business_schema.sql
T
2026-07-29 23:18:54 +08:00

33 lines
1.2 KiB
SQL

SET NOCOUNT ON;
IF DB_NAME() <> N'FMS'
THROW 51510, N'验证脚本只能在 FMS 目标数据库执行。', 1;
SELECT
(SELECT COUNT(*) FROM sys.tables WHERE is_ms_shipped = 0) AS table_count,
(SELECT COUNT(*) FROM sys.views WHERE is_ms_shipped = 0) AS view_count,
90 AS generated_business_table_minimum,
48 AS generated_business_view_count;
SELECT OBJECT_SCHEMA_NAME(c.object_id) AS schema_name,
OBJECT_NAME(c.object_id) AS object_name,
c.name AS column_name,
TYPE_NAME(c.user_type_id) AS type_name
FROM sys.columns AS c
INNER JOIN sys.tables AS t ON t.object_id = c.object_id
WHERE t.is_ms_shipped = 0
AND (c.name = N'b_id' OR c.name = N'subid' OR c.name = N'father' OR c.name LIKE N'%[_]id')
AND TYPE_NAME(c.user_type_id) <> N'bigint'
ORDER BY schema_name, object_name, c.column_id;
SELECT s.name AS schema_name, v.name AS view_name
FROM sys.views AS v
INNER JOIN sys.schemas AS s ON s.schema_id = v.schema_id
WHERE v.is_ms_shipped = 0 AND OBJECTPROPERTY(v.object_id, 'IsSchemaBound') IN (0, 1)
AND EXISTS (
SELECT 1 FROM sys.sql_expression_dependencies AS d
WHERE d.referencing_id = v.object_id AND d.referenced_id IS NULL
AND d.referenced_entity_name IS NOT NULL
)
ORDER BY s.name, v.name;