308 lines
13 KiB
Transact-SQL
308 lines
13 KiB
Transact-SQL
SET NOCOUNT ON
|
|
|
|
DECLARE
|
|
@iTemp INT,
|
|
@sql NVARCHAR(3000),
|
|
@idTab INT,
|
|
@sysTabName NVARCHAR(128),
|
|
@hvwName NVARCHAR(128),
|
|
@idCol INT,
|
|
@trigger NVARCHAR(max)
|
|
|
|
|
|
SET @sysTabName = '_TabVyroba_Objednavky_Pol'
|
|
SET @hvwName = 'hvw_Vyroba_ObjednavkyMat_Pol'
|
|
|
|
|
|
|
|
SET @iTemp = ISNULL( (SELECT MAX(ID) FROM dbo.TabDefTabUzivTabulka), 1)
|
|
DBCC CHECKIDENT (TabDefTabUzivTabulka, RESEED, @iTemp)
|
|
SET @iTemp = ISNULL( (SELECT MAX(ID) FROM dbo.TabDefTabUzivAtributy), 1)
|
|
DBCC CHECKIDENT (TabDefTabUzivAtributy, RESEED, @iTemp)
|
|
SET @iTemp = ISNULL( (SELECT MAX(ID) FROM dbo.TabDefTabUzivConstraint), 1)
|
|
DBCC CHECKIDENT (TabDefTabUzivConstraint, RESEED, @iTemp)
|
|
|
|
|
|
|
|
-- tabulka
|
|
SET @idTab = (SELECT ID FROM dbo.TabDefTabUzivTabulka WHERE NazevTabulky=@sysTabName)
|
|
IF (@idTab IS NULL)
|
|
BEGIN
|
|
INSERT dbo.TabDefTabUzivTabulka (Skupina, Popis, NazevTabulky, NazevPrehledu, NastaveniAkceNovy, NastaveniAkceOprava, NastaveniAkceZrusit)
|
|
SELECT N'', 'Zapsané položky objednávky na materiál', @sysTabName, @hvwName, 1, 1, 1
|
|
SET @idTab = SCOPE_IDENTITY()
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- sloupce
|
|
IF (@idTab IS NOT NULL)
|
|
BEGIN
|
|
/*
|
|
INSERT dbo.TabDefTabUzivAtributy
|
|
(IDDefinice, Poradi, DTUHeliosAttr, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
|
|
DTUAtrPocitany, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
|
|
DTUReadOnly, DTUHromadneZmeny, EdAtrEditor, EdAtrPoradi, EdAtrHlidat, EdAtrPrenosAtr, EdAtrSkrytyPrenos, EdAtrInfoAtr1, EdAtrInfoAtr2, EdAtrPrenosDPSN, EdAtrPrenosIDFiltr, EdAtrPodminka)
|
|
|
|
DTUAtrTyp
|
|
0=INT
|
|
1=SMALLINT
|
|
2=TINYINT
|
|
3=BIGINT
|
|
4=GUID
|
|
5=BIT
|
|
6=NVARCHAR
|
|
7=NTEXT
|
|
8=VARBINARY(MAX)
|
|
9=DATETIME
|
|
10=NUMERIC(5,2)
|
|
11=NUMERIC(19,6)
|
|
12=FLOAT
|
|
13=VARCHAR
|
|
14=NVARCHAR(MAX)
|
|
*/
|
|
|
|
|
|
/*
|
|
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'ID')
|
|
IF (@idCol IS NULL)
|
|
INSERT dbo.TabDefTabUzivAtributy
|
|
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
|
|
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
|
|
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN, EdAtrPrenosAtr)
|
|
SELECT @idTab, 1, N'ID', N'Systémové èíslo', 0, 0, 0, N'', 0, -- 0 = int
|
|
NULL, NULL, NULL, 20, N'', 0, 1, 0, 1, 0,
|
|
0, 0, N'', N''
|
|
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'ID')
|
|
BEGIN
|
|
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY'
|
|
EXEC sp_executesql @sql
|
|
END
|
|
*/
|
|
|
|
|
|
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IDHlava')
|
|
IF (@idCol IS NULL)
|
|
INSERT dbo.TabDefTabUzivAtributy
|
|
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
|
|
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
|
|
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN, EdAtrPrenosAtr)
|
|
SELECT @idTab, 2, N'IDHlava', N'Hlavièka', 0, 0, 1, N'', 0, -- 0 = int
|
|
NULL, NULL, NULL, 20, N'', 0, 0, 0, 1, 0,
|
|
1, 0, N'', N''
|
|
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'IDHlava')
|
|
BEGIN
|
|
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD IDHlava INT NOT NULL'
|
|
EXEC sp_executesql @sql
|
|
END
|
|
|
|
|
|
|
|
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IDDokladOZ')
|
|
IF (@idCol IS NULL)
|
|
INSERT dbo.TabDefTabUzivAtributy
|
|
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
|
|
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
|
|
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
|
|
SELECT @idTab, 3, N'IDDokladOZ', N'Doklad OZ', 0, 0, 1, N'', 0, -- 3=int
|
|
NULL, NULL, NULL, 20, N'', 1, 0, 0, 1, 0,
|
|
1, 0, N''
|
|
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'IDDokladOZ')
|
|
BEGIN
|
|
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD IDDokladOZ INT NULL'
|
|
EXEC sp_executesql @sql
|
|
END
|
|
|
|
|
|
|
|
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IDPohybOZ')
|
|
IF (@idCol IS NULL)
|
|
INSERT dbo.TabDefTabUzivAtributy
|
|
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
|
|
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
|
|
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
|
|
SELECT @idTab, 4, N'IDPohybOZ', N'Položka dokladu OZ', 0, 0, 1, N'', 0, -- 0=int
|
|
NULL, NULL, NULL, 20, N'', 1, 0, 0, 1, 0,
|
|
1, 0, N''
|
|
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'IDPohybOZ')
|
|
BEGIN
|
|
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD IDPohybOZ INT NULL'
|
|
EXEC sp_executesql @sql
|
|
END
|
|
|
|
|
|
|
|
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IDVyrCP')
|
|
IF (@idCol IS NULL)
|
|
INSERT dbo.TabDefTabUzivAtributy
|
|
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
|
|
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
|
|
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
|
|
SELECT @idTab, 5, N'IDVyrCP', N'Pohyb VÈ položky OZ', 0, 0, 1, N'', 0, -- 0=int
|
|
NULL, NULL, NULL, 20, N'', 1, 0, 0, 1, 0,
|
|
1, 0, N''
|
|
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'IDVyrCP')
|
|
BEGIN
|
|
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD IDVyrCP INT NULL'
|
|
EXEC sp_executesql @sql
|
|
END
|
|
|
|
|
|
|
|
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'SkupZbo')
|
|
IF (@idCol IS NULL)
|
|
INSERT dbo.TabDefTabUzivAtributy
|
|
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUHeliosAttr, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
|
|
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
|
|
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
|
|
SELECT @idTab, 6, N'SkupZbo', N'TabKmenZbozi.SkupZbo', N'', 6, 3, 1, N'', 0, -- 6=nvarchar
|
|
NULL, NULL, NULL, 15, N'', 1, 0, 0, 1, 0,
|
|
1, 0, N''
|
|
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'SkupZbo')
|
|
BEGIN
|
|
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD SkupZbo NVARCHAR(3) NULL'
|
|
EXEC sp_executesql @sql
|
|
END
|
|
|
|
|
|
|
|
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'RegCis')
|
|
IF (@idCol IS NULL)
|
|
INSERT dbo.TabDefTabUzivAtributy
|
|
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUHeliosAttr, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
|
|
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
|
|
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
|
|
SELECT @idTab, 7, N'RegCis', N'TabKmenZbozi.RegCis', N'', 6, 30, 1, N'', 0, -- 6 = nvarchar, delka 30
|
|
NULL, NULL, NULL, 15, N'', 1, 0, 0, 1, 0,
|
|
1, 0, N''
|
|
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'RegCis')
|
|
BEGIN
|
|
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD RegCis NVARCHAR(30) NULL'
|
|
EXEC sp_executesql @sql
|
|
END
|
|
|
|
|
|
|
|
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'Mnozstvi')
|
|
IF (@idCol IS NULL)
|
|
INSERT dbo.TabDefTabUzivAtributy
|
|
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
|
|
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
|
|
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
|
|
SELECT @idTab, 8, N'Mnozstvi', N'Množství', 11, 0, 0, N'0', 0, -- 11 = numeric(19,6)
|
|
NULL, NULL, NULL, 70, N'#,##0.##', 1, 1, 1, 1, 1,
|
|
1, 0, N''
|
|
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'Mnozstvi')
|
|
BEGIN
|
|
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD Mnozstvi NUMERIC(19,6) NOT NULL DEFAULT 0.0'
|
|
EXEC sp_executesql @sql
|
|
END
|
|
|
|
|
|
|
|
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'PaletovyList')
|
|
IF (@idCol IS NULL)
|
|
INSERT dbo.TabDefTabUzivAtributy
|
|
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
|
|
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
|
|
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
|
|
SELECT @idTab, 9, N'PaletovyList', N'Paletový list', 6, 100, 1, N'', 0, -- 6 = nvarchar, delka 100
|
|
NULL, NULL, NULL, 15, N'', 1, 0, 0, 1, 0,
|
|
1, 0, N''
|
|
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'PaletovyList')
|
|
BEGIN
|
|
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD PaletovyList NVARCHAR(100) NULL'
|
|
EXEC sp_executesql @sql
|
|
END
|
|
|
|
|
|
|
|
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'Sarze')
|
|
IF (@idCol IS NULL)
|
|
INSERT dbo.TabDefTabUzivAtributy
|
|
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
|
|
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
|
|
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
|
|
SELECT @idTab, 10, N'Sarze', N'Šarže', 6, 100, 1, N'', 0, -- 6 = nvarchar, delka 100
|
|
NULL, NULL, NULL, 15, N'', 1, 0, 0, 1, 0,
|
|
1, 0, N''
|
|
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'Sarze')
|
|
BEGIN
|
|
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD Sarze NVARCHAR(100) NULL'
|
|
EXEC sp_executesql @sql
|
|
END
|
|
|
|
END -- @idTab IS NOT NULL
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- indexy
|
|
IF (@idTab IS NOT NULL)
|
|
IF NOT EXISTS (SELECT 1 FROM dbo.TabDefTabUzivConstraint WHERE IDDefinice=@idTab AND Typ=1 AND JmenoSys=N'PK__' + @sysTabName + N'__ID')
|
|
INSERT dbo.TabDefTabUzivConstraint
|
|
(IDDefinice, JmenoSys, Typ, MojeAtributy, CiziTabulka, CiziAtributy, IncludedAttr, VazbaNazevMoje, VazbaNazevMojeSys, VazbaNazevCizi, VazbaNazevCiziSys)
|
|
SELECT @idTab, N'PK__' + @sysTabName + N'__ID', 1, N'ID', N'', N'', N'', N'', N'', N'', N''
|
|
|
|
IF (@idTab IS NOT NULL) AND EXISTS (SELECT 1 FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IDHlava')
|
|
IF NOT EXISTS (SELECT 1 FROM dbo.TabDefTabUzivConstraint WHERE IDDefinice=@idTab AND Typ=0 AND JmenoSys=N'IX__' + @sysTabName + N'__IDHlava')
|
|
INSERT dbo.TabDefTabUzivConstraint
|
|
(IDDefinice, JmenoSys, Typ, MojeAtributy, CiziTabulka, CiziAtributy, IncludedAttr, VazbaNazevMoje, VazbaNazevMojeSys, VazbaNazevCizi, VazbaNazevCiziSys)
|
|
SELECT @idTab, N'IX__' + @sysTabName + N'__IDHlava', 0, N'IDHlava', N'', N'', N'', N'', N'', N'', N''
|
|
|
|
|
|
IF (@idTab IS NOT NULL) AND EXISTS (SELECT 1 FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IDPohybOZ')
|
|
IF NOT EXISTS (SELECT 1 FROM dbo.TabDefTabUzivConstraint WHERE IDDefinice=@idTab AND Typ=0 AND JmenoSys=N'IX__' + @sysTabName + N'__IDPohybOZ')
|
|
INSERT dbo.TabDefTabUzivConstraint
|
|
(IDDefinice, JmenoSys, Typ, MojeAtributy, CiziTabulka, CiziAtributy, IncludedAttr, VazbaNazevMoje, VazbaNazevMojeSys, VazbaNazevCizi, VazbaNazevCiziSys)
|
|
SELECT @idTab, N'IX__' + @sysTabName + N'__IDPohybOZ', 0, N'IDPohybOZ', N'', N'', N'', N'', N'', N'', N''
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- hlavni trigger
|
|
IF (@idTab IS NOT NULL) AND EXISTS (SELECT 1 FROM dbo.TabDefTabUzivTabulka WHERE DefiniceTriggeru IS NULL)
|
|
UPDATE dbo.TabDefTabUzivTabulka SET DefiniceTriggeru=N'CREATE TRIGGER ht_' + @sysTabName + '_DIU ON ' + @sysTabName + '
|
|
FOR DELETE,INSERT,UPDATE AS
|
|
|
|
IF (@@ROWCOUNT=0)
|
|
RETURN
|
|
SET NOCOUNT ON
|
|
|
|
-- 1..insert, -1..delete, 0..update
|
|
DECLARE @JakaAkce INT
|
|
SET @JakaAkce = 0
|
|
IF EXISTS(SELECT*FROM INSERTED)
|
|
SET @JakaAkce = @JakaAkce + 1
|
|
IF EXISTS(SELECT*FROM DELETED)
|
|
SET @JakaAkce = @JakaAkce - 1
|
|
|
|
|
|
DECLARE
|
|
@id INT
|
|
|
|
|
|
-- begin: cast delete
|
|
IF (@JakaAkce=-1)
|
|
BEGIN
|
|
|
|
-- cisteni seedu tabulky
|
|
SET @id = ISNULL( (SELECT MAX(ID) FROM dbo._TabVyroba_Objednavky_Pol), 1)
|
|
DBCC CHECKIDENT(_TabVyroba_Objednavky_Pol, RESEED, @id)
|
|
|
|
END
|
|
-- end: cast delete
|
|
|
|
' WHERE ID=@idTab
|
|
|