xykj-plus/xykj-admin-plus/script/sql/update/sqlserver/update_contract_table.sql

116 lines
4.5 KiB
MySQL
Raw Normal View History

-- ----------------------------
-- 合同表结构更新脚本 (SQL Server)
-- 说明:此脚本用于将旧的合同表结构更新为新的结构
-- 请根据实际情况谨慎执行,建议先备份数据
-- ----------------------------
-- ----------------------------
-- 第一步:备份原有数据(可选,建议执行)
-- ----------------------------
-- select * into biz_contract_backup from biz_contract;
-- ----------------------------
-- 第二步:添加新字段(在删除旧字段之前)
-- SQL Server 不支持 if not exists需要先检查列是否存在
-- ----------------------------
if not exists (select * from sys.columns where object_id = object_id('biz_contract') and name = 'party_a_name')
begin
alter table biz_contract add party_a_name varchar(200) null;
end
if not exists (select * from sys.columns where object_id = object_id('biz_contract') and name = 'party_b_name')
begin
alter table biz_contract add party_b_name varchar(200) null;
end
-- ----------------------------
-- 第三步:迁移数据(如果需要)
-- 如果需要从旧字段迁移数据到新字段在这里写UPDATE语句
-- ----------------------------
-- update biz_contract set party_a_name = customer_name where party_a_name is null;
-- update biz_contract set party_b_name = signing_entity where party_b_name is null;
-- ----------------------------
-- 第四步:设置新字段为非空
-- 注意:需要先确保所有行都有值
-- ----------------------------
-- alter table biz_contract alter column party_a_name varchar(200) not null;
-- alter table biz_contract alter column party_b_name varchar(200) not null;
-- ----------------------------
-- 第五步:删除旧字段
-- ----------------------------
if exists (select * from sys.columns where object_id = object_id('biz_contract') and name = 'delivery_dept_id')
begin
alter table biz_contract drop column delivery_dept_id;
end
if exists (select * from sys.columns where object_id = object_id('biz_contract') and name = 'sales_user_id')
begin
alter table biz_contract drop column sales_user_id;
end
if exists (select * from sys.columns where object_id = object_id('biz_contract') and name = 'accounting_type')
begin
alter table biz_contract drop column accounting_type;
end
if exists (select * from sys.columns where object_id = object_id('biz_contract') and name = 'customer_name')
begin
alter table biz_contract drop column customer_name;
end
if exists (select * from sys.columns where object_id = object_id('biz_contract') and name = 'signing_entity')
begin
alter table biz_contract drop column signing_entity;
end
if exists (select * from sys.columns where object_id = object_id('biz_contract') and name = 'target_profit_rate')
begin
alter table biz_contract drop column target_profit_rate;
end
if exists (select * from sys.columns where object_id = object_id('biz_contract') and name = 'business_tags')
begin
alter table biz_contract drop column business_tags;
end
if exists (select * from sys.columns where object_id = object_id('biz_contract') and name = 'paid_amount')
begin
alter table biz_contract drop column paid_amount;
end
if exists (select * from sys.columns where object_id = object_id('biz_contract') and name = 'unpaid_amount')
begin
alter table biz_contract drop column unpaid_amount;
end
if exists (select * from sys.columns where object_id = object_id('biz_contract') and name = 'remark')
begin
alter table biz_contract drop column remark;
end
-- ----------------------------
-- 第六步:添加转包相关字段
-- ----------------------------
if not exists (select * from sys.columns where object_id = object_id('biz_contract') and name = 'is_subcontract')
begin
alter table biz_contract add is_subcontract varchar(1) null default '0';
execute sp_addextendedproperty 'MS_Description', '是否转包(0否 1是)', 'SCHEMA', 'dbo', 'TABLE', 'biz_contract', 'COLUMN', 'is_subcontract';
end
go
if not exists (select * from sys.columns where object_id = object_id('biz_contract') and name = 'subcontract_from_id')
begin
alter table biz_contract add subcontract_from_id bigint null;
execute sp_addextendedproperty 'MS_Description', '转包来源合同ID', 'SCHEMA', 'dbo', 'TABLE', 'biz_contract', 'COLUMN', 'subcontract_from_id';
end
go
-- 添加外键约束(可选)
-- if not exists (select * from sys.foreign_keys where name = 'fk_contract_subcontract_from')
-- begin
-- alter table biz_contract add constraint fk_contract_subcontract_from foreign key (subcontract_from_id) references biz_contract(contract_id);
-- end
-- go