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