155 lines
5.5 KiB
Transact-SQL
155 lines
5.5 KiB
Transact-SQL
SET NOCOUNT ON;
|
|
SET XACT_ABORT ON;
|
|
|
|
BEGIN TRANSACTION;
|
|
|
|
IF OBJECT_ID(N'dbo.b_othercompany', N'U') IS NULL
|
|
BEGIN
|
|
CREATE TABLE dbo.b_othercompany (
|
|
b_id varchar(50) NOT NULL,
|
|
b_pycode nvarchar(50) NULL,
|
|
b_type varchar(200) NULL,
|
|
b_name nvarchar(500) NULL,
|
|
b_shortname nvarchar(50) NULL,
|
|
b_linkman nvarchar(200) NULL,
|
|
b_phone nvarchar(500) NULL,
|
|
b_addr nvarchar(500) NULL,
|
|
b_firstlinkdate datetime NULL,
|
|
b_htno nvarchar(50) NULL,
|
|
b_htdate date NULL,
|
|
b_htexpiredate date NULL,
|
|
b_black varchar(1) NULL,
|
|
b_canuse varchar(1) NULL,
|
|
b_zl int NULL,
|
|
b_tel nvarchar(50) NULL,
|
|
b_fax nvarchar(500) NULL,
|
|
b_www nvarchar(50) NULL,
|
|
b_email nvarchar(50) NULL,
|
|
b_bankacount nvarchar(500) NULL,
|
|
b_invaccount nvarchar(500) NULL,
|
|
b_cate_id nvarchar(500) NULL,
|
|
b_bz1 nvarchar(500) NULL,
|
|
b_bz2 nvarchar(500) NULL,
|
|
b_bz3 nvarchar(500) NULL,
|
|
b_bz4 nvarchar(500) NULL,
|
|
b_province nvarchar(50) NULL,
|
|
b_city nvarchar(50) NULL,
|
|
b_area nvarchar(50) NULL,
|
|
b_country nvarchar(50) NULL,
|
|
b_edicode nvarchar(50) NULL,
|
|
b_showcolor int NULL,
|
|
b_type_id nvarchar(200) NULL,
|
|
b_from_id nvarchar(50) NULL,
|
|
b_type1_id nvarchar(50) NULL,
|
|
b_type2_id nvarchar(50) NULL,
|
|
b_type3_id nvarchar(50) NULL,
|
|
b_type4_id nvarchar(50) NULL,
|
|
b_type5_id nvarchar(50) NULL,
|
|
b_owner_id varchar(50) NULL,
|
|
b_inputuser_id varchar(50) NULL,
|
|
b_inputdatetime datetime NULL,
|
|
b_updateuser_id varchar(50) NULL,
|
|
b_updatedatetime datetime NULL,
|
|
b_password varchar(50) NULL,
|
|
b_state nvarchar(50) NULL,
|
|
b_bankacount_e nvarchar(500) NULL,
|
|
b_addr_e nvarchar(500) NULL,
|
|
b_name_e nvarchar(500) NULL,
|
|
CONSTRAINT PK_b_othercompany PRIMARY KEY (b_id)
|
|
);
|
|
|
|
CREATE INDEX IX_b_othercompany_name
|
|
ON dbo.b_othercompany (b_name, b_id);
|
|
CREATE INDEX IX_b_othercompany_pycode
|
|
ON dbo.b_othercompany (b_pycode, b_id);
|
|
CREATE INDEX IX_b_othercompany_owner
|
|
ON dbo.b_othercompany (b_owner_id, b_id);
|
|
END;
|
|
|
|
IF NOT EXISTS (
|
|
SELECT 1
|
|
FROM sys.indexes
|
|
WHERE object_id = OBJECT_ID(N'dbo.b_othercompany')
|
|
AND name = N'IX_b_othercompany_category'
|
|
)
|
|
CREATE INDEX IX_b_othercompany_category
|
|
ON dbo.b_othercompany (b_cate_id, b_id);
|
|
|
|
DECLARE @RebuildCategory bit = 0;
|
|
DECLARE @CategoryObjectId int = OBJECT_ID(N'dbo.b_othercompany_bmfl', N'U');
|
|
|
|
IF @CategoryObjectId IS NULL
|
|
SET @RebuildCategory = 1;
|
|
ELSE IF EXISTS (
|
|
SELECT 1
|
|
FROM sys.columns
|
|
WHERE object_id = @CategoryObjectId
|
|
AND name IN (
|
|
N'mc_a', N'bm_b', N'mc_b', N'js',
|
|
N'bm_1_b', N'mc_1_b', N'bm_2_b', N'mc_2_b',
|
|
N'bm_3_b', N'mc_3_b', N'bm_4_b', N'mc_4_b',
|
|
N'bm_5_b', N'mc_5_b', N'bm_6_b', N'mc_6_b'
|
|
)
|
|
)
|
|
SET @RebuildCategory = 1;
|
|
ELSE IF NOT EXISTS (
|
|
SELECT 1
|
|
FROM sys.columns
|
|
WHERE object_id = @CategoryObjectId
|
|
AND name = N'b_id'
|
|
AND system_type_id = TYPE_ID(N'bigint')
|
|
)
|
|
SET @RebuildCategory = 1;
|
|
ELSE IF EXISTS (
|
|
SELECT required.name
|
|
FROM (VALUES
|
|
(N'b_id'), (N'b_parent_id'), (N'b_code'), (N'b_name'),
|
|
(N'b_level'), (N'b_path'), (N'b_xh'), (N'b_canuse'),
|
|
(N'b_inputuser_id'), (N'b_inputdatetime'),
|
|
(N'b_updateuser_id'), (N'b_updatedatetime')
|
|
) AS required(name)
|
|
WHERE NOT EXISTS (
|
|
SELECT 1
|
|
FROM sys.columns AS actual
|
|
WHERE actual.object_id = @CategoryObjectId
|
|
AND actual.name = required.name
|
|
)
|
|
)
|
|
SET @RebuildCategory = 1;
|
|
|
|
IF @RebuildCategory = 1
|
|
BEGIN
|
|
DELETE FROM dbo.b_othercompany;
|
|
|
|
IF @CategoryObjectId IS NOT NULL
|
|
DROP TABLE dbo.b_othercompany_bmfl;
|
|
|
|
CREATE TABLE dbo.b_othercompany_bmfl (
|
|
b_id bigint NOT NULL,
|
|
b_parent_id bigint NULL,
|
|
b_name nvarchar(150) NOT NULL,
|
|
b_level int NOT NULL CONSTRAINT DF_b_othercompany_bmfl_level DEFAULT (1),
|
|
b_path varchar(1000) NOT NULL,
|
|
b_xh int NOT NULL CONSTRAINT DF_b_othercompany_bmfl_xh DEFAULT (0),
|
|
b_canuse int NOT NULL CONSTRAINT DF_b_othercompany_bmfl_canuse DEFAULT (1),
|
|
b_inputuser_id bigint NULL,
|
|
b_inputdatetime datetime NULL,
|
|
b_updateuser_id bigint NULL,
|
|
b_updatedatetime datetime NULL,
|
|
CONSTRAINT PK_b_othercompany_bmfl PRIMARY KEY (b_id),
|
|
CONSTRAINT CK_b_othercompany_bmfl_level CHECK (b_level >= 1),
|
|
CONSTRAINT CK_b_othercompany_bmfl_parent CHECK (
|
|
b_parent_id IS NULL OR b_parent_id <> b_id
|
|
),
|
|
CONSTRAINT FK_b_othercompany_bmfl_parent FOREIGN KEY (b_parent_id)
|
|
REFERENCES dbo.b_othercompany_bmfl (b_id)
|
|
);
|
|
|
|
CREATE INDEX IX_b_othercompany_bmfl_parent
|
|
ON dbo.b_othercompany_bmfl (b_parent_id, b_xh, b_id);
|
|
CREATE INDEX IX_b_othercompany_bmfl_path
|
|
ON dbo.b_othercompany_bmfl (b_path, b_xh, b_id);
|
|
END;
|
|
|
|
COMMIT TRANSACTION;
|