Files
FTC25009/sql/bas_tray_rule.sql
2026-06-24 09:13:18 +08:00

72 lines
3.4 KiB
Transact-SQL

IF OBJECT_ID(N'[dbo].[bas_tray_rule]', N'U') IS NULL
BEGIN
CREATE TABLE [dbo].[bas_tray_rule] (
[id] bigint IDENTITY(1,1) NOT NULL,
[rule_name] varchar(128) COLLATE Chinese_PRC_CI_AS NULL,
[tray_type] varchar(16) COLLATE Chinese_PRC_CI_AS NOT NULL,
[tray_length] int NULL,
[tray_width] int NULL,
[allowed_warehouses] varchar(500) COLLATE Chinese_PRC_CI_AS NOT NULL,
[allowed_warehouse_names] varchar(1000) COLLATE Chinese_PRC_CI_AS NULL,
[allowed_cargo_type] varchar(64) COLLATE Chinese_PRC_CI_AS NOT NULL,
[allowed_cargo_type_name] varchar(128) COLLATE Chinese_PRC_CI_AS NULL,
[remark] varchar(500) COLLATE Chinese_PRC_CI_AS NULL,
[create_by] varchar(64) COLLATE Chinese_PRC_CI_AS NULL,
[create_time] datetime2(7) NULL,
[update_by] varchar(64) COLLATE Chinese_PRC_CI_AS NULL,
[update_time] datetime2(7) NULL,
CONSTRAINT [PK_bas_tray_rule] PRIMARY KEY CLUSTERED ([id])
);
END
GO
IF COL_LENGTH('dbo.bas_tray_rule', 'rule_name') IS NULL
ALTER TABLE dbo.bas_tray_rule ADD rule_name varchar(128) COLLATE Chinese_PRC_CI_AS NULL;
GO
IF COL_LENGTH('dbo.bas_tray_rule', 'tray_type') IS NULL
ALTER TABLE dbo.bas_tray_rule ADD tray_type varchar(16) COLLATE Chinese_PRC_CI_AS NULL;
GO
IF COL_LENGTH('dbo.bas_tray_rule', 'tray_length') IS NULL
ALTER TABLE dbo.bas_tray_rule ADD tray_length int NULL;
GO
IF COL_LENGTH('dbo.bas_tray_rule', 'tray_width') IS NULL
ALTER TABLE dbo.bas_tray_rule ADD tray_width int NULL;
GO
IF COL_LENGTH('dbo.bas_tray_rule', 'allowed_warehouses') IS NULL
ALTER TABLE dbo.bas_tray_rule ADD allowed_warehouses varchar(500) COLLATE Chinese_PRC_CI_AS NULL;
GO
IF COL_LENGTH('dbo.bas_tray_rule', 'allowed_warehouse_names') IS NULL
ALTER TABLE dbo.bas_tray_rule ADD allowed_warehouse_names varchar(1000) COLLATE Chinese_PRC_CI_AS NULL;
GO
IF COL_LENGTH('dbo.bas_tray_rule', 'allowed_cargo_type') IS NULL
ALTER TABLE dbo.bas_tray_rule ADD allowed_cargo_type varchar(64) COLLATE Chinese_PRC_CI_AS NULL;
GO
IF COL_LENGTH('dbo.bas_tray_rule', 'allowed_cargo_type_name') IS NULL
ALTER TABLE dbo.bas_tray_rule ADD allowed_cargo_type_name varchar(128) COLLATE Chinese_PRC_CI_AS NULL;
GO
IF COL_LENGTH('dbo.bas_tray_rule', 'remark') IS NULL
ALTER TABLE dbo.bas_tray_rule ADD remark varchar(500) COLLATE Chinese_PRC_CI_AS NULL;
GO
IF COL_LENGTH('dbo.bas_tray_rule', 'create_by') IS NULL
ALTER TABLE dbo.bas_tray_rule ADD create_by varchar(64) COLLATE Chinese_PRC_CI_AS NULL;
GO
IF COL_LENGTH('dbo.bas_tray_rule', 'create_time') IS NULL
ALTER TABLE dbo.bas_tray_rule ADD create_time datetime2(7) NULL;
GO
IF COL_LENGTH('dbo.bas_tray_rule', 'update_by') IS NULL
ALTER TABLE dbo.bas_tray_rule ADD update_by varchar(64) COLLATE Chinese_PRC_CI_AS NULL;
GO
IF COL_LENGTH('dbo.bas_tray_rule', 'update_time') IS NULL
ALTER TABLE dbo.bas_tray_rule ADD update_time datetime2(7) NULL;
GO
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_bas_tray_rule_tray_type' AND object_id = OBJECT_ID(N'[dbo].[bas_tray_rule]'))
CREATE INDEX [IX_bas_tray_rule_tray_type] ON [dbo].[bas_tray_rule] ([tray_type]);
GO
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = N'IX_bas_tray_rule_cargo_type' AND object_id = OBJECT_ID(N'[dbo].[bas_tray_rule]'))
CREATE INDEX [IX_bas_tray_rule_cargo_type] ON [dbo].[bas_tray_rule] ([allowed_cargo_type]);
GO
-- 注意:托盘规则需要按现场仓库/货位类型配置基础数据;无匹配规则时 PDA 绑盘会被拦截。