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 绑盘会被拦截。