CREATE TABLE TBIDB_TERM_VALUE_NVARCHAR ( GUID BIGINT NOT NULL IDENTITY (1, 1), TERM_VALUE NVARCHAR(900) NOT NULL, TERM_VALUE_REVERSE VARCHAR(900), ADDED_WHO NVARCHAR(100) NOT NULL DEFAULT 'SYSTEM', ADDED_WHEN NVARCHAR NOT NULL DEFAULT (GETDATE()), CHANGED_WHO NVARCHAR(100), CHANGED_WHEN DATETIME, CONSTRAINT PK_TBIDB_TERM_VALUE_NVARCHAR PRIMARY KEY (GUID), CONSTRAINT UQ_TBIDB_TERM_VALUE_NVARCHAR UNIQUE (TERM_VALUE), CONSTRAINT UQ_TBIDB_TERM_VALUE_NVARCHAR_REV UNIQUE (TERM_VALUE_REVERSE) ) GO CREATE TRIGGER TBIDB_TERM_VALUE_NVARCHAR_AFT_UPD ON TBIDB_TERM_VALUE_NVARCHAR FOR UPDATE AS UPDATE TBIDB_TERM_VALUE_NVARCHAR SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBIDB_TERM_VALUE_NVARCHAR.GUID = INSERTED.GUID GO CREATE TRIGGER [dbo].[TBIDB_TERM_VALUE_NVARCHAR_AFT_INS] ON [dbo].[TBIDB_TERM_VALUE_NVARCHAR] FOR INSERT AS UPDATE TBIDB_TERM_VALUE_NVARCHAR SET TBIDB_TERM_VALUE_NVARCHAR.TERM_VALUE_REVERSE = REVERSE(INSERTED.TERM_VALUE) FROM INSERTED WHERE TBIDB_TERM_VALUE_NVARCHAR.GUID = INSERTED.GUID GO CREATE TABLE TBIDB_TERM_VALUE_INTEGER ( GUID BIGINT NOT NULL IDENTITY (1, 1), TERM_VALUE BIGINT NOT NULL, ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'SYSTEM', ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()), CHANGED_WHO VARCHAR(100), CHANGED_WHEN DATETIME, CONSTRAINT PK_TBIDB_TERM_VALUE_INTEGER PRIMARY KEY (GUID), CONSTRAINT UQ_TBIDB_TERM_VALUE_INTEGER UNIQUE (TERM_VALUE) ) GO CREATE TRIGGER TBIDB_TERM_VALUE_INTEGER_AFT_UPD ON TBIDB_TERM_VALUE_INTEGER FOR UPDATE AS UPDATE TBIDB_TERM_VALUE_INTEGER SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBIDB_TERM_VALUE_INTEGER.GUID = INSERTED.GUID GO INSERT INTO TBIDB_TERM_VALUE_INTEGER (TERM_VALUE) VALUES (0); INSERT INTO TBIDB_TERM_VALUE_INTEGER (TERM_VALUE) VALUES (1); CREATE TABLE TBIDB_TERM_VALUE_FLOAT ( GUID BIGINT NOT NULL IDENTITY (1, 1), TERM_VALUE FLOAT NOT NULL, ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'SYSTEM', ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()), CHANGED_WHO VARCHAR(100), CHANGED_WHEN DATETIME, CONSTRAINT PK_TBIDB_TERM_VALUE_FLOAT PRIMARY KEY (GUID), CONSTRAINT UQ_TBIDB_TERM_VALUE_FLOAT UNIQUE (TERM_VALUE) ) GO CREATE TRIGGER TBIDB_TERM_VALUE_FLOAT_AFT_UPD ON TBIDB_TERM_VALUE_FLOAT FOR UPDATE AS UPDATE TBIDB_TERM_VALUE_FLOAT SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBIDB_TERM_VALUE_FLOAT.GUID = INSERTED.GUID GO CREATE TABLE TBIDB_TERM_VALUE_DECIMAL ( GUID BIGINT NOT NULL IDENTITY (1, 1), TERM_VALUE DECIMAL(19, 0) NOT NULL, ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'SYSTEM', ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()), CHANGED_WHO VARCHAR(100), CHANGED_WHEN DATETIME, CONSTRAINT PK_TBIDB_TERM_VALUE_DECIMAL PRIMARY KEY (GUID), CONSTRAINT UQ_TBIDB_TERM_VALUE_DECIMAL UNIQUE (TERM_VALUE) ) GO CREATE TRIGGER TBIDB_TERM_VALUE_DECIMAL_AFT_UPD ON TBIDB_TERM_VALUE_DECIMAL FOR UPDATE AS UPDATE TBIDB_TERM_VALUE_DECIMAL SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBIDB_TERM_VALUE_DECIMAL.GUID = INSERTED.GUID GO CREATE TABLE TBIDB_TERM_VALUE_DATE ( GUID BIGINT NOT NULL IDENTITY (1, 1), TERM_VALUE DATE NOT NULL, ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'SYSTEM', ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()), CHANGED_WHO VARCHAR(100), CHANGED_WHEN DATETIME, CONSTRAINT PK_TBIDB_TERM_VALUE_DATE PRIMARY KEY (GUID), CONSTRAINT UQ_TBIDB_TERM_VALUE_DATE UNIQUE (TERM_VALUE) ) GO CREATE TRIGGER TBIDB_TERM_VALUE_DATE_AFT_UPD ON TBIDB_TERM_VALUE_DATE FOR UPDATE AS UPDATE TBIDB_TERM_VALUE_DATE SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBIDB_TERM_VALUE_DATE.GUID = INSERTED.GUID GO --DELETE FROM TBIDB_OBJECT_METADATA --DELETE FROM TBIDB_LANGUAGE_TERM_METADATA --DELETE FROM TBIDB_FILE_OBJECT --DELETE FROM TBIDB_OBJECT_BE --DELETE FROM TBIDB_OBJECT_METADATA_CHANGE --DELETE FROM TBIDB_OBJECT --DROP TABLE TBIDB_TERM_VALUE_DATETIME CREATE TABLE TBIDB_TERM_VALUE_DATETIME ( GUID BIGINT NOT NULL IDENTITY (1, 1), TERM_VALUE DATETIME NOT NULL, ADDED_WHO VARCHAR(100) NOT NULL DEFAULT 'SYSTEM', ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()), CHANGED_WHO VARCHAR(100), CHANGED_WHEN DATETIME, CONSTRAINT PK_TBIDB_TERM_VALUE_DATETIME PRIMARY KEY (GUID), CONSTRAINT UQ_TBIDB_TERM_VALUE_DATETIME UNIQUE (TERM_VALUE) ) GO CREATE TRIGGER TBIDB_TERM_VALUE_DATETIME_UPD ON TBIDB_TERM_VALUE_DATETIME FOR UPDATE AS UPDATE TBIDB_TERM_VALUE_DATETIME SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBIDB_TERM_VALUE_DATETIME.GUID = INSERTED.GUID GO --DROP TABLE TBIDB_ATTRIBUTE_TYPE CREATE TABLE TBIDB_ATTRIBUTE_TYPE ( GUID TINYINT NOT NULL IDENTITY (1, 1), NAME_TYPE VARCHAR(100) NOT NULL, COMMENT VARCHAR(500), BIT1 BIT NOT NULL DEFAULT 0, BIT2 BIT NOT NULL DEFAULT 0, BIT3 BIT NOT NULL DEFAULT 0, BIT4 BIT NOT NULL DEFAULT 0, DELETED BIT NOT NULL DEFAULT 0, DELETED_WHO VARCHAR(100), DELETED_WHEN DATETIME, ADDED_WHO VARCHAR(30) NOT NULL DEFAULT 'SYSTEM', ADDED_WHEN DATETIME NOT NULL DEFAULT (GETDATE()), CHANGED_WHO VARCHAR(30), CHANGED_WHEN DATETIME, CONSTRAINT PK_TBIDB_ATTRIBUTE_TYPE PRIMARY KEY (GUID), CONSTRAINT UQ_TBIDB_ATTRIBUTE_TYPE UNIQUE (NAME_TYPE) ) GO CREATE TRIGGER TBIDB_ATTRIBUTE_TYPE_AFT_UPD ON TBIDB_ATTRIBUTE_TYPE FOR UPDATE AS UPDATE TBIDB_ATTRIBUTE_TYPE SET CHANGED_WHEN = GETDATE() FROM INSERTED WHERE TBIDB_ATTRIBUTE_TYPE.GUID = INSERTED.GUID GO INSERT INTO TBIDB_ATTRIBUTE_TYPE (NAME_TYPE) VALUES ('NVARCHAR'); --1 INSERT INTO TBIDB_ATTRIBUTE_TYPE (NAME_TYPE) VALUES ('BIG INTEGER');--2 INSERT INTO TBIDB_ATTRIBUTE_TYPE (NAME_TYPE) VALUES ('FLOAT');--3 INSERT INTO TBIDB_ATTRIBUTE_TYPE (NAME_TYPE) VALUES ('DECIMAL');--4 INSERT INTO TBIDB_ATTRIBUTE_TYPE (NAME_TYPE) VALUES ('DATE');--5 INSERT INTO TBIDB_ATTRIBUTE_TYPE (NAME_TYPE) VALUES ('DATETIME');--6 INSERT INTO TBIDB_ATTRIBUTE_TYPE (NAME_TYPE) VALUES ('BIT');--7 INSERT INTO TBIDB_ATTRIBUTE_TYPE (NAME_TYPE) VALUES ('VECTOR STRING');--8 INSERT INTO TBIDB_ATTRIBUTE_TYPE (NAME_TYPE) VALUES ('VECTOR INTEGER');--9 -- ============================================= -- Author: DD MS -- Changed: 25.11.2021 @TERM_TYPE_ID = 6 -- Changed: 25.08.2020 @TERM_TYPE_ID = 7 AND UPPER(@TERM) -- ============================================= CREATE OR ALTER PROCEDURE [dbo].[PRIDB_NEW_TERM] @MD_TYPE VARCHAR(100),@TERM VARCHAR(MAX), @WHO VARCHAR(100), @TERM_ID BIGINT OUTPUT AS BEGIN DECLARE @TERM_TYPE_ID TINYINT PRINT 'PRIDB_NEW_TERM ...' SELECT @TERM_TYPE_ID = GUID FROM TBIDB_ATTRIBUTE_TYPE WHERE NAME_TYPE = @MD_TYPE IF @TERM_TYPE_ID = 7 AND @TERM = 'TRUE' SET @TERM = 1 ELSE IF @TERM_TYPE_ID = 7 AND @TERM = 'FALSE' SET @TERM = 0 PRINT 'PRIDB_NEW_TERM: TERM_TYPE_ID IS: ' + CONVERT(VARCHAR(2),@TERM_TYPE_ID) + ' # TERM: ' + @TERM IF @TERM_TYPE_ID IN (1,8) --VARCHAR IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_NVARCHAR WHERE TERM_VALUE = @TERM) BEGIN PRINT 'PRIDB_NEW_TERM: TERM NOT EXISTING ...INSERT' INSERT INTO TBIDB_TERM_VALUE_NVARCHAR (TERM_VALUE,ADDED_WHO) VALUES (@TERM,@WHO); SELECT @TERM_ID = MAX(GUID) FROM TBIDB_TERM_VALUE_NVARCHAR END ELSE SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_NVARCHAR WHERE TERM_VALUE = @TERM ELSE IF @TERM_TYPE_ID IN (2,7,9) --BIGINT IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_INTEGER WHERE TERM_VALUE = CONVERT(BIGINT,@TERM)) BEGIN INSERT INTO TBIDB_TERM_VALUE_INTEGER (TERM_VALUE,ADDED_WHO) VALUES (CONVERT(BIGINT,@TERM),@WHO); SELECT @TERM_ID = MAX(GUID) FROM TBIDB_TERM_VALUE_INTEGER END ELSE SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_INTEGER WHERE TERM_VALUE = CONVERT(BIGINT,@TERM) ELSE IF @TERM_TYPE_ID = 3 --FLOAT IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_FLOAT WHERE TERM_VALUE = CONVERT(FLOAT,@TERM)) BEGIN INSERT INTO TBIDB_TERM_VALUE_FLOAT (TERM_VALUE,ADDED_WHO) VALUES (CONVERT(FLOAT,@TERM),@WHO); SELECT @TERM_ID = MAX(GUID) FROM TBIDB_TERM_VALUE_FLOAT END ELSE SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_FLOAT WHERE TERM_VALUE = CONVERT(FLOAT,@TERM) ELSE IF @TERM_TYPE_ID = 4 --DECIMAL IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_DECIMAL WHERE TERM_VALUE = CONVERT(DECIMAL(19,0),@TERM)) BEGIN INSERT INTO TBIDB_TERM_VALUE_DECIMAL (TERM_VALUE,ADDED_WHO) VALUES (CONVERT(DECIMAL(19,0),@TERM),@WHO); SELECT @TERM_ID = MAX(GUID) FROM TBIDB_TERM_VALUE_DECIMAL END ELSE SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_DECIMAL WHERE TERM_VALUE = CONVERT(DECIMAL(19,0),@TERM) ELSE IF @TERM_TYPE_ID = 5 --DATE IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_DATE WHERE TERM_VALUE = CONVERT(DATE,@TERM)) BEGIN INSERT INTO TBIDB_TERM_VALUE_DATE (TERM_VALUE,ADDED_WHO) VALUES (CONVERT(DATE,@TERM),@WHO); SELECT @TERM_ID = MAX(GUID) FROM TBIDB_TERM_VALUE_DATE END ELSE SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_DATE WHERE TERM_VALUE = CONVERT(DATE,@TERM) ELSE IF @TERM_TYPE_ID = 6 --DATETIME IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_DATETIME WHERE TERM_VALUE = CONVERT(DATETIME,@TERM)) BEGIN INSERT INTO TBIDB_TERM_VALUE_DATETIME (TERM_VALUE,ADDED_WHO) VALUES (CONVERT(DATETIME,@TERM),@WHO); SELECT @TERM_ID = MAX(GUID) FROM TBIDB_TERM_VALUE_DATETIME END ELSE SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_DATE WHERE TERM_VALUE = CONVERT(DATE,@TERM) PRINT '### PRIDB_NEW_TERM: TERM-ID: ' + CONVERT(VARCHAR(10),@TERM_ID) + '###' END GO --BEI DER WISAG zusätzlich ALTER PROCEDURE [dbo].[PRIDB_NEW_TERM_FLOAT] @MD_TYPE VARCHAR(100),@TERM FLOAT, @WHO VARCHAR(100), @TERM_ID BIGINT OUTPUT AS BEGIN PRINT '#### PRIDB_NEW_TERM_FLOAT ####' DECLARE @TERM_TYPE_ID TINYINT SELECT @TERM_TYPE_ID = GUID FROM TBIDB_ATTRIBUTE_TYPE WHERE UPPER(NAME_TYPE) = UPPER(@MD_TYPE) IF @TERM_TYPE_ID = 3 --FLOAT IF NOT EXISTS(SELECT GUID FROM TBIDB_TERM_VALUE_FLOAT WHERE TERM_VALUE = @TERM) BEGIN INSERT INTO TBIDB_TERM_VALUE_FLOAT (TERM_VALUE,ADDED_WHO) VALUES (@TERM,@WHO); SELECT @TERM_ID = MAX(GUID) FROM TBIDB_TERM_VALUE_FLOAT END ELSE SELECT @TERM_ID = GUID FROM TBIDB_TERM_VALUE_FLOAT WHERE TERM_VALUE = @TERM; PRINT CHAR(9) + '>> RETURNING TERM-ID: ' + CONVERT(VARCHAR(10),@TERM_ID) PRINT '#### END PRIDB_NEW_TERM_FLOAT ####' END