170 lines
17 KiB
Transact-SQL
170 lines
17 KiB
Transact-SQL
USE [BPMOC]
|
||
GO
|
||
IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_MEMBERS_GROUPS]') AND parent_object_id = OBJECT_ID(N'[dbo].[MEMBERS]'))
|
||
ALTER TABLE [dbo].[MEMBERS] DROP CONSTRAINT [FK_MEMBERS_GROUPS]
|
||
GO
|
||
/****** Object: View [dbo].[vwGROUPMEMBERS] Script Date: 16/02/2018 02:45:34 p.m. ******/
|
||
IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[vwGROUPMEMBERS]'))
|
||
DROP VIEW [dbo].[vwGROUPMEMBERS]
|
||
GO
|
||
/****** Object: View [dbo].[vwDEPARTMENTMEMBERS] Script Date: 16/02/2018 02:45:34 p.m. ******/
|
||
IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[vwDEPARTMENTMEMBERS]'))
|
||
DROP VIEW [dbo].[vwDEPARTMENTMEMBERS]
|
||
GO
|
||
/****** Object: Table [dbo].[ORGANIZATIONS] Script Date: 16/02/2018 02:45:34 p.m. ******/
|
||
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ORGANIZATIONS]') AND type in (N'U'))
|
||
DROP TABLE [dbo].[ORGANIZATIONS]
|
||
GO
|
||
/****** Object: Table [dbo].[MEMBERS] Script Date: 16/02/2018 02:45:34 p.m. ******/
|
||
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[MEMBERS]') AND type in (N'U'))
|
||
DROP TABLE [dbo].[MEMBERS]
|
||
GO
|
||
/****** Object: Table [dbo].[LABELS] Script Date: 16/02/2018 02:45:34 p.m. ******/
|
||
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[LABELS]') AND type in (N'U'))
|
||
DROP TABLE [dbo].[LABELS]
|
||
GO
|
||
/****** Object: Table [dbo].[JOBS] Script Date: 16/02/2018 02:45:34 p.m. ******/
|
||
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[JOBS]') AND type in (N'U'))
|
||
DROP TABLE [dbo].[JOBS]
|
||
GO
|
||
/****** Object: Table [dbo].[GROUPS] Script Date: 16/02/2018 02:45:34 p.m. ******/
|
||
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[GROUPS]') AND type in (N'U'))
|
||
DROP TABLE [dbo].[GROUPS]
|
||
GO
|
||
/****** Object: Table [dbo].[DEPARTMENTS] Script Date: 16/02/2018 02:45:34 p.m. ******/
|
||
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DEPARTMENTS]') AND type in (N'U'))
|
||
DROP TABLE [dbo].[DEPARTMENTS]
|
||
GO
|
||
/****** Object: Table [dbo].[DEPARTMENTS] Script Date: 16/02/2018 02:45:34 p.m. ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DEPARTMENTS]') AND type in (N'U'))
|
||
BEGIN
|
||
CREATE TABLE [dbo].[DEPARTMENTS](
|
||
[ID] [int] NULL,
|
||
[NAME] [nchar](48) NULL,
|
||
[PARENTDEPT] [int] NULL,
|
||
[ISINUSE] [int] NULL,
|
||
[PROFILE] [nchar](256) NULL,
|
||
[NEEDSSORTING] [int] NULL,
|
||
[MISCDATA] [image] NULL,
|
||
[ORGID] [int] NULL
|
||
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
||
END
|
||
GO
|
||
/****** Object: Table [dbo].[GROUPS] Script Date: 16/02/2018 02:45:34 p.m. ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[GROUPS]') AND type in (N'U'))
|
||
BEGIN
|
||
CREATE TABLE [dbo].[GROUPS](
|
||
[GID] [int] NOT NULL,
|
||
[NAME] [nchar](48) NOT NULL,
|
||
[INUSE] [int] NULL,
|
||
[ACCESSGRP] [nchar](128) NULL,
|
||
[ORGID] [int] NULL,
|
||
[ISWEIGHTED] [int] NULL,
|
||
CONSTRAINT [GROUPS_GID] PRIMARY KEY CLUSTERED
|
||
(
|
||
[GID] ASC
|
||
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
|
||
) ON [PRIMARY]
|
||
END
|
||
GO
|
||
/****** Object: Table [dbo].[JOBS] Script Date: 16/02/2018 02:45:34 p.m. ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[JOBS]') AND type in (N'U'))
|
||
BEGIN
|
||
CREATE TABLE [dbo].[JOBS](
|
||
[ID] [int] NULL,
|
||
[JOBFUNCTION] [nchar](75) NULL,
|
||
[NAME] [nchar](256) NULL,
|
||
[DEPTID] [int] NULL,
|
||
[SUPERVISORID] [int] NULL,
|
||
[JOBTYPE] [int] NULL,
|
||
[ISPRIMARY] [int] NULL,
|
||
[MISCDATA] [image] NULL,
|
||
[RIGHTS] [nchar](256) NULL,
|
||
[FULLNAME] [nchar](256) NULL
|
||
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
||
END
|
||
GO
|
||
/****** Object: Table [dbo].[LABELS] Script Date: 16/02/2018 02:45:34 p.m. ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[LABELS]') AND type in (N'U'))
|
||
BEGIN
|
||
CREATE TABLE [dbo].[LABELS](
|
||
[ID] [int] NULL,
|
||
[DEPTID] [int] NULL,
|
||
[BOXTEXT] [nchar](256) NULL,
|
||
[MISCDATA] [image] NULL
|
||
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
||
END
|
||
GO
|
||
/****** Object: Table [dbo].[MEMBERS] Script Date: 16/02/2018 02:45:34 p.m. ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[MEMBERS]') AND type in (N'U'))
|
||
BEGIN
|
||
CREATE TABLE [dbo].[MEMBERS](
|
||
[MEMBERID] [int] NOT NULL,
|
||
[MEMBERTYPE] [int] NOT NULL,
|
||
[NAME] [nchar](256) NOT NULL,
|
||
[FULLNAME] [nchar](256) NULL,
|
||
[GID] [int] NOT NULL,
|
||
[BUSINESSID] [int] NULL,
|
||
[WEIGHT] [int] NULL,
|
||
[SEQ] [int] NULL,
|
||
[MISCDATA] [image] NULL
|
||
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
||
END
|
||
GO
|
||
/****** Object: Table [dbo].[ORGANIZATIONS] Script Date: 16/02/2018 02:45:34 p.m. ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ORGANIZATIONS]') AND type in (N'U'))
|
||
BEGIN
|
||
CREATE TABLE [dbo].[ORGANIZATIONS](
|
||
[ID] [int] NULL,
|
||
[NAME] [nchar](64) NULL,
|
||
[DESCRIPTION] [nchar](1024) NULL
|
||
) ON [PRIMARY]
|
||
END
|
||
GO
|
||
/****** Object: View [dbo].[vwDEPARTMENTMEMBERS] Script Date: 16/02/2018 02:45:34 p.m. ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[vwDEPARTMENTMEMBERS]'))
|
||
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[vwDEPARTMENTMEMBERS] AS SELECT TOP 100 PERCENT D.ID AS DEPTID, D.NAME AS DEPTNAME, J.ID AS MEMBERID, J.NAME AS MEMBERNAME, J.JOBTYPE AS MEMBERTYPE, J.FULLNAME, J.JOBFUNCTION, J.ISPRIMARY, J.SUPERVISORID, S.NAME AS SUPERVISORNAME, S.JOBFUNCTION AS SUPERVISORJF FROM JOBS AS J WITH (READPAST) INNER JOIN DEPARTMENTS AS D WITH (READPAST) ON J.DEPTID = D.ID INNER JOIN JOBS AS S WITH (READPAST) ON J.SUPERVISORID = S.ID ORDER BY DEPTNAME'
|
||
GO
|
||
/****** Object: View [dbo].[vwGROUPMEMBERS] Script Date: 16/02/2018 02:45:34 p.m. ******/
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[vwGROUPMEMBERS]'))
|
||
EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[vwGROUPMEMBERS] AS SELECT G.NAME ''GROUPNAME'', J.ID ''MEMBERID'', M.NAME ''MEMBERNAME'', M.MEMBERTYPE, J.FULLNAME, M.WEIGHT, M.SEQ FROM GROUPS G(READPAST), JOBS J(READPAST), MEMBERS M WHERE M.MEMBERID <> 0 AND J.NAME = M.NAME AND J.ISPRIMARY = 1 AND M.GID = G.GID UNION SELECT G.NAME, 0, M.NAME, M.MEMBERTYPE, '''', M.WEIGHT, M.SEQ FROM GROUPS G(READPAST), MEMBERS M WHERE (M.MEMBERID = 0 OR M.MEMBERTYPE < 4) AND M.MEMBERTYPE <> 3 AND (M.MEMBERTYPE <> 2 OR CHARINDEX(''*'', M.NAME) = 0) AND M.GID = G.GID UNION SELECT G.NAME, M.MEMBERID, M.NAME, M.MEMBERTYPE, M.FULLNAME, M.WEIGHT, M.SEQ FROM GROUPS G(READPAST), MEMBERS M WHERE (M.MEMBERID <> 0 AND (M.MEMBERTYPE = 4 OR M.MEMBERTYPE = 5) AND (SELECT COUNT(*) FROM JOBS J WHERE J.NAME = M.NAME) = 0) AND M.GID = G.GID UNION SELECT G.NAME, D .MEMBERID, D .MEMBERNAME, 3, D .FULLNAME, M.WEIGHT, M.SEQ FROM GROUPS G(READPAST), vwDEPARTMENTMEMBERS D (READPAST), MEMBERS M WHERE M.MEMBERTYPE = 2 AND CHARINDEX(''*'', M.NAME) <> 0 AND D .SUPERVISORJF = SUBSTRING(M.NAME, CHARINDEX(''*'', M.NAME) + 1,LEN(M.NAME) - CHARINDEX(''*'', M.NAME)) AND M.GID = G.GID UNION SELECT TOP 100 PERCENT G.NAME, D.MEMBERID, D.MEMBERNAME, M.MEMBERTYPE, D.FULLNAME, M.WEIGHT, M.SEQ FROM GROUPS G(READPAST), vwDEPARTMENTMEMBERS D(READPAST), MEMBERS M(READPAST) WHERE M.MEMBERTYPE = 3 AND D.JOBFUNCTION = SUBSTRING(M.NAME, CHARINDEX(''*'', M.NAME) + 1,LEN(M.NAME) - CHARINDEX(''*'', M.NAME)) AND D.DEPTNAME = SUBSTRING(M.NAME, 0, CHARINDEX(''*'', M.NAME)) AND M.GID = G.GID ORDER BY G.NAME, M.SEQ'
|
||
GO
|
||
IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_MEMBERS_GROUPS]') AND parent_object_id = OBJECT_ID(N'[dbo].[MEMBERS]'))
|
||
ALTER TABLE [dbo].[MEMBERS] WITH CHECK ADD CONSTRAINT [FK_MEMBERS_GROUPS] FOREIGN KEY([GID])
|
||
REFERENCES [dbo].[GROUPS] ([GID])
|
||
GO
|
||
IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_MEMBERS_GROUPS]') AND parent_object_id = OBJECT_ID(N'[dbo].[MEMBERS]'))
|
||
ALTER TABLE [dbo].[MEMBERS] CHECK CONSTRAINT [FK_MEMBERS_GROUPS]
|
||
GO
|