xykj-plus/xykj-admin-plus/script/sql/update/sqlserver/update_candidate_table.sql
2026-06-13 13:48:51 +08:00

116 lines
5.0 KiB
Transact-SQL

-- ----------------------------
-- 候选人表结构更新脚本 (SQL Server)
-- 说明:此脚本用于为候选人表添加缺失字段
-- 请根据实际情况谨慎执行,建议先备份数据
-- ----------------------------
-- ----------------------------
-- 第一步:备份原有数据(可选,建议执行)
-- ----------------------------
-- select * into biz_candidate_backup from biz_candidate;
-- ----------------------------
-- 第二步:添加缺失字段
-- ----------------------------
-- 沟通日期
if not exists (select * from sys.columns where object_id = object_id('biz_candidate') and name = 'communication_date')
begin
alter table biz_candidate add communication_date date null;
execute sp_addextendedproperty 'MS_Description', '沟通日期', 'SCHEMA', 'dbo', 'TABLE', 'biz_candidate', 'COLUMN', 'communication_date';
end
go
-- 项目组
if not exists (select * from sys.columns where object_id = object_id('biz_candidate') and name = 'project_group')
begin
alter table biz_candidate add project_group varchar(100) null;
execute sp_addextendedproperty 'MS_Description', '项目组', 'SCHEMA', 'dbo', 'TABLE', 'biz_candidate', 'COLUMN', 'project_group';
end
go
-- 统招是否
if not exists (select * from sys.columns where object_id = object_id('biz_candidate') and name = 'is_unified_recruitment')
begin
alter table biz_candidate add is_unified_recruitment char(1) null;
execute sp_addextendedproperty 'MS_Description', '统招是否(0否 1是)', 'SCHEMA', 'dbo', 'TABLE', 'biz_candidate', 'COLUMN', 'is_unified_recruitment';
end
go
-- 专业
if not exists (select * from sys.columns where object_id = object_id('biz_candidate') and name = 'major')
begin
alter table biz_candidate add major varchar(100) null;
execute sp_addextendedproperty 'MS_Description', '专业', 'SCHEMA', 'dbo', 'TABLE', 'biz_candidate', 'COLUMN', 'major';
end
go
-- 是否愿意外派
if not exists (select * from sys.columns where object_id = object_id('biz_candidate') and name = 'willing_to_outsource')
begin
alter table biz_candidate add willing_to_outsource char(1) null;
execute sp_addextendedproperty 'MS_Description', '是否愿意外派(0否 1是)', 'SCHEMA', 'dbo', 'TABLE', 'biz_candidate', 'COLUMN', 'willing_to_outsource';
end
go
-- 是否在职
if not exists (select * from sys.columns where object_id = object_id('biz_candidate') and name = 'is_employed')
begin
alter table biz_candidate add is_employed char(1) null;
execute sp_addextendedproperty 'MS_Description', '是否在职(0否 1是)', 'SCHEMA', 'dbo', 'TABLE', 'biz_candidate', 'COLUMN', 'is_employed';
end
go
-- 离职周期多久
if not exists (select * from sys.columns where object_id = object_id('biz_candidate') and name = 'resignation_cycle')
begin
alter table biz_candidate add resignation_cycle varchar(50) null;
execute sp_addextendedproperty 'MS_Description', '离职周期多久', 'SCHEMA', 'dbo', 'TABLE', 'biz_candidate', 'COLUMN', 'resignation_cycle';
end
go
-- 什么时候方便面试
if not exists (select * from sys.columns where object_id = object_id('biz_candidate') and name = 'interview_availability')
begin
alter table biz_candidate add interview_availability varchar(200) null;
execute sp_addextendedproperty 'MS_Description', '什么时候方便面试', 'SCHEMA', 'dbo', 'TABLE', 'biz_candidate', 'COLUMN', 'interview_availability';
end
go
-- 候选人住哪里
if not exists (select * from sys.columns where object_id = object_id('biz_candidate') and name = 'residence_location')
begin
alter table biz_candidate add residence_location varchar(200) null;
execute sp_addextendedproperty 'MS_Description', '候选人住哪里', 'SCHEMA', 'dbo', 'TABLE', 'biz_candidate', 'COLUMN', 'residence_location';
end
go
-- 是否加微信
if not exists (select * from sys.columns where object_id = object_id('biz_candidate') and name = 'wechat_added')
begin
alter table biz_candidate add wechat_added char(1) null;
execute sp_addextendedproperty 'MS_Description', '是否加微信(0否 1是)', 'SCHEMA', 'dbo', 'TABLE', 'biz_candidate', 'COLUMN', 'wechat_added';
end
go
-- ----------------------------
-- 第三步:添加唯一约束
-- ----------------------------
-- 删除可能存在的旧索引
if exists (select * from sys.indexes where name = 'uk_name' and object_id = object_id('biz_candidate'))
drop index uk_name on biz_candidate;
if exists (select * from sys.indexes where name = 'uk_phone_number' and object_id = object_id('biz_candidate'))
drop index uk_phone_number on biz_candidate;
if exists (select * from sys.indexes where name = 'uk_name_phone' and object_id = object_id('biz_candidate'))
drop index uk_name_phone on biz_candidate;
go
-- 创建唯一索引:姓名唯一(过滤空值)
create unique nonclustered index uk_name on biz_candidate(name)
where name is not null;
go
-- 创建唯一索引:手机号码唯一(过滤空值)
create unique nonclustered index uk_phone_number on biz_candidate(phone_number)
where phone_number is not null;
go