20260903173038

This commit is contained in:
oneao committed 2026-09-03 17:30:39 +08:00
1 parent c8940f6e03
commit 0faf44cffc
55 files changed
+3278 -208

No files matched your search

@@ -1,5 +1,5 @@
/*
新增「多语言类型」表 dbo.b_i18n_type,并注册独立模块 m_i18n_type 与其权限、管理员授权。
新增「多语言类型」表 dbo.s_i18n_type,并注册独立模块 m_i18n_type 与其权限、管理员授权。
用于维护系统支持的语言清单(简称、名称、是否默认、是否启用、排序),默认中文为内置默认语言。
本脚本可重复执行:表、模块、权限均通过存在性判断避免重复播种;
@@ -24,22 +24,22 @@ BEGIN TRANSACTION;
);
-- 1. 多语言类型表
IF NOT EXISTS (SELECT 1 FROM sys.tables WHERE name = N'b_i18n_type')
IF NOT EXISTS (SELECT 1 FROM sys.tables WHERE name = N's_i18n_type')
BEGIN
CREATE TABLE dbo.b_i18n_type (
CREATE TABLE dbo.s_i18n_type (
b_id bigint NOT NULL,
b_code varchar(20) NOT NULL,
b_name nvarchar(100) NOT NULL,
b_canuse int NOT NULL CONSTRAINT DF_b_i18n_type_canuse DEFAULT (1),
b_default int NOT NULL CONSTRAINT DF_b_i18n_type_default DEFAULT (0),
b_xh int NOT NULL CONSTRAINT DF_b_i18n_type_xh DEFAULT (0),
CONSTRAINT PK_b_i18n_type PRIMARY KEY (b_id),
CONSTRAINT UQ_b_i18n_type_code UNIQUE (b_code)
b_canuse int NOT NULL CONSTRAINT DF_s_i18n_type_canuse DEFAULT (1),
b_default int NOT NULL CONSTRAINT DF_s_i18n_type_default DEFAULT (0),
b_xh int NOT NULL CONSTRAINT DF_s_i18n_type_xh DEFAULT (0),
CONSTRAINT PK_s_i18n_type PRIMARY KEY (b_id),
CONSTRAINT UQ_s_i18n_type_code UNIQUE (b_code)
);
CREATE INDEX IX_b_i18n_type_xh ON dbo.b_i18n_type (b_xh, b_id);
CREATE INDEX IX_s_i18n_type_xh ON dbo.s_i18n_type (b_xh, b_id);
-- 预置数据:默认中文不可删除,可选英文
INSERT INTO dbo.b_i18n_type (b_id, b_code, b_name, b_canuse, b_default, b_xh) VALUES
INSERT INTO dbo.s_i18n_type (b_id, b_code, b_name, b_canuse, b_default, b_xh) VALUES
(920000000000000001, N'zh-CN', N'简体中文', 1, 1, 0),
(920000000000000002, N'en-US', N'English', 1, 0, 10);
END
@@ -393,6 +393,25 @@ BEGIN
CREATE INDEX IX_s_role_scope_role ON dbo.s_role_scope (b_role_id, b_module_id, b_operation, b_canuse);
END;
IF OBJECT_ID(N'dbo.s_i18n_type', N'U') IS NULL
BEGIN
CREATE TABLE dbo.s_i18n_type (
b_id bigint NOT NULL,
b_code varchar(20) NOT NULL,
b_name nvarchar(100) NOT NULL,
b_canuse int NOT NULL CONSTRAINT DF_s_i18n_type_canuse DEFAULT (1),
b_default int NOT NULL CONSTRAINT DF_s_i18n_type_default DEFAULT (0),
b_xh int NOT NULL CONSTRAINT DF_s_i18n_type_xh DEFAULT (0),
CONSTRAINT PK_s_i18n_type PRIMARY KEY (b_id),
CONSTRAINT UQ_s_i18n_type_code UNIQUE (b_code)
);
CREATE INDEX IX_s_i18n_type_xh ON dbo.s_i18n_type (b_xh, b_id);
INSERT INTO dbo.s_i18n_type (b_id, b_code, b_name, b_canuse, b_default, b_xh) VALUES
(920000000000000001, N'zh-CN', N'简体中文', 1, 1, 0),
(920000000000000002, N'en-US', N'English', 1, 0, 10);
END;
IF OBJECT_ID(N'dbo.s_i18n', N'U') IS NULL
BEGIN
CREATE TABLE dbo.s_i18n (
@@ -0,0 +1,45 @@
/*
将旧版 dbo.b_i18n_type 统一为系统表 dbo.s_i18n_type。
可重复执行,兼容新库未建表、旧库已有 b_i18n_type,以及两张表同时存在的情况。
*/
SET NOCOUNT ON;
SET XACT_ABORT ON;
BEGIN TRANSACTION;
IF OBJECT_ID(N'dbo.s_i18n_type', N'U') IS NULL
BEGIN
CREATE TABLE dbo.s_i18n_type (
b_id bigint NOT NULL,
b_code varchar(20) NOT NULL,
b_name nvarchar(100) NOT NULL,
b_canuse int NOT NULL CONSTRAINT DF_s_i18n_type_canuse DEFAULT (1),
b_default int NOT NULL CONSTRAINT DF_s_i18n_type_default DEFAULT (0),
b_xh int NOT NULL CONSTRAINT DF_s_i18n_type_xh DEFAULT (0),
CONSTRAINT PK_s_i18n_type PRIMARY KEY (b_id),
CONSTRAINT UQ_s_i18n_type_code UNIQUE (b_code)
);
CREATE INDEX IX_s_i18n_type_xh ON dbo.s_i18n_type (b_xh, b_id);
END;
IF OBJECT_ID(N'dbo.b_i18n_type', N'U') IS NOT NULL
BEGIN
INSERT INTO dbo.s_i18n_type (b_id, b_code, b_name, b_canuse, b_default, b_xh)
SELECT old.b_id, old.b_code, old.b_name, old.b_canuse, old.b_default, old.b_xh
FROM dbo.b_i18n_type AS old
WHERE NOT EXISTS (
SELECT 1 FROM dbo.s_i18n_type AS current_row
WHERE current_row.b_code = old.b_code
);
DROP TABLE dbo.b_i18n_type;
END;
IF NOT EXISTS (SELECT 1 FROM dbo.s_i18n_type)
BEGIN
INSERT INTO dbo.s_i18n_type (b_id, b_code, b_name, b_canuse, b_default, b_xh) VALUES
(920000000000000001, N'zh-CN', N'简体中文', 1, 1, 0),
(920000000000000002, N'en-US', N'English', 1, 0, 10);
END;
COMMIT TRANSACTION;