set xact_abort on go begin transaction go set ANSI_NULLS on go create VIEW v_ElencoFamMacc AS SELECT dbo.ElencoFamMacc.CodFam, dbo.ElencoFamMacc.DescrFam, COUNT(dbo.SchemaCollFamMacc.CodScheda) AS numRowChild FROM dbo.ElencoFamMacc LEFT OUTER JOIN dbo.SchemaCollFamMacc ON dbo.ElencoFamMacc.CodFam = dbo.SchemaCollFamMacc.CodFam GROUP BY dbo.ElencoFamMacc.CodFam, dbo.ElencoFamMacc.DescrFam go exec sp_addextendedproperty 'MS_DiagramPane1', '[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00] Begin DesignProperties = Begin PaneConfigurations = Begin PaneConfiguration = 0 NumPanes = 4 Configuration = "(H (1[40] 4[20] 2[20] 3) )" End Begin PaneConfiguration = 1 NumPanes = 3 Configuration = "(H (1 [50] 4 [25] 3))" End Begin PaneConfiguration = 2 NumPanes = 3 Configuration = "(H (1 [50] 2 [25] 3))" End Begin PaneConfiguration = 3 NumPanes = 3 Configuration = "(H (4 [30] 2 [40] 3))" End Begin PaneConfiguration = 4 NumPanes = 2 Configuration = "(H (1 [56] 3))" End Begin PaneConfiguration = 5 NumPanes = 2 Configuration = "(H (2 [66] 3))" End Begin PaneConfiguration = 6 NumPanes = 2 Configuration = "(H (4 [50] 3))" End Begin PaneConfiguration = 7 NumPanes = 1 Configuration = "(V (3))" End Begin PaneConfiguration = 8 NumPanes = 3 Configuration = "(H (1[56] 4[18] 2) )" End Begin PaneConfiguration = 9 NumPanes = 2 Configuration = "(H (1 [75] 4))" End Begin PaneConfiguration = 10 NumPanes = 2 Configuration = "(H (1[66] 2) )" End Begin PaneConfiguration = 11 NumPanes = 2 Configuration = "(H (4 [60] 2))" End Begin PaneConfiguration = 12 NumPanes = 1 Configuration = "(H (1) )" End Begin PaneConfiguration = 13 NumPanes = 1 Configuration = "(V (4))" End Begin PaneConfiguration = 14 NumPanes = 1 Configuration = "(V (2))" End ActivePaneConfig = 0 End Begin DiagramPane = Begin Origin = Top = 0 Left = 0 End Begin Tables = Begin Table = "ElencoFamMacc" Begin Extent = Top = 6 Left = 38 Bottom = 102 Right = 208 End DisplayFlags = 280 TopColumn = 0 End Begin Table = "SchemaCollFamMacc" Begin Extent = Top = 8 Left = 338 Bottom = 138 Right = 508 End DisplayFlags = 280 TopColumn = 0 End End End Begin SQLPane = End Begin DataPane = Begin ParameterDefaults = "" End Begin ColumnWidths = 9 Width = 284 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 End End Begin CriteriaPane = Begin ColumnWidths = 12 Column = 1440 Alias = 900 Table = 1170 Output = 720 Append = 1400 NewValue = 1170 SortType = 1350 SortOrder = 1410 GroupBy = 1350 Filter = 1350 Or = 1350 Or = 1350 Or = 1350 End End End ', 'SCHEMA', 'dbo', 'VIEW', 'v_ElencoFamMacc' go exec sp_addextendedproperty 'MS_DiagramPaneCount', 1, 'SCHEMA', 'dbo', 'VIEW', 'v_ElencoFamMacc' go commit go set xact_abort on go begin transaction go set ANSI_NULLS on go alter PROCEDURE stp_AFM_deleteQuery (@Original_CodFam NVARCHAR(50)) AS SET NOCOUNT OFF; BEGIN TRAN -- cancello eventuale riga tabellone associazione schede/famiglie DELETE FROM SchemaCollFamMacc WHERE ([CodFam] = @Original_CodFam) -- cancello vera e propria famiglia DELETE FROM [dbo].[ElencoFamMacc] WHERE ([CodFam] = @Original_CodFam) COMMIT TRAN go commit go set xact_abort on go begin transaction go set ANSI_NULLS on go -- ============================================= -- Author: S.E. Locatelli -- Create date: 2015.06.09 -- Description: delete record -- ============================================= alter PROCEDURE stp_AM_deleteQuery ( @Original_Matricola nvarchar(50) ) AS BEGIN tran SET NOCOUNT OFF; DELETE FROM Tags2Macchine WHERE Matricola = @Original_Matricola DELETE FROM ElencoMacchineCN WHERE Matricola = @Original_Matricola COMMIT tran go commit go set xact_abort on go begin transaction go set ANSI_NULLS on go -- ============================================= -- Author: S.E. Locatelli -- Create date: 2015.10.19 -- Description: recupero record da matricola -- ============================================= create PROCEDURE stp_AM_getByMatr ( @Matricola NVARCHAR(50) ) AS SET NOCOUNT OFF; SELECT * FROM ElencoMacchineCN WHERE Matricola = @Matricola go commit go set xact_abort on go begin transaction go set ANSI_NULLS on go -- ============================================= -- Author: S.E. Locatelli -- Create date: 2015.06.09 -- Description: insert record -- ============================================= alter PROCEDURE stp_AM_insertQuery ( @Matricola NVARCHAR(50), @User NVARCHAR(50), @Descrizione NVARCHAR(50), @Cliente NVARCHAR(50), @CodFam NVARCHAR(50), @CorsaX INT, @CorsaY INT, @CorsaZ INT ) AS BEGIN tran SET NOCOUNT OFF; DECLARE @IdxDossier INT = 0 -- inserisco macchina INSERT INTO ElencoMacchineCN (Matricola, Descrizione, Cliente, CodFam, CorsaX, CorsaY, CorsaZ) VALUES (@Matricola, @Descrizione, @Cliente, @CodFam, @CorsaX, @CorsaY, @CorsaZ); -- creo DOSSIER x matricola... EXEC stp_ED_InsertQuery @Matricola, @User -- leggo numero dossier! SELECT @IdxDossier = IdxDossier FROM ElencoDossier WHERE Matricola = @Matricola -- inserisco schema collaudi da famiglia macchina nel dossier... EXEC stp_SCM_insByFamMac @IdxDossier, @CodFam -- inserisco istanza prove standard x varie fasi... --EXEC stp_SCM_insMisFasiMissing @IdxDossier SELECT * FROM ElencoMacchineCN WHERE Matricola = @Matricola COMMIT tran go commit go set xact_abort on go begin transaction go set ANSI_NULLS on go -- ============================================= -- Author: S.E. Locatelli -- Create date: 2015.10.16 -- Description: clona assegnazioni famiglia -- ============================================= create PROCEDURE stp_SCFM_clonaFamMacc ( @CodFamFrom NVARCHAR(50) = '' -- sorgente ,@CodFamTo NVARCHAR(50) = '' -- destinazione ) AS BEGIN -- merge: se manca inserisco, se c'è faccio + 1 ... MERGE SchemaCollFamMacc AS target USING (SELECT CodScheda, Vers, @CodFamTo AS CodFam, NumSchede, Descrizione, opz FROM SchemaCollFamMacc WHERE CodFam = @CodFamFrom) AS source (CodScheda, Vers, CodFam, NumSchede, Descrizione, opz) ON (target.CodFam = source.CodFam AND target.CodScheda = source.CodScheda AND target.Vers = source.Vers) WHEN MATCHED THEN UPDATE SET NumSchede = target.NumSchede + 1 WHEN NOT MATCHED THEN INSERT (CodScheda, Vers, CodFam, NumSchede, Descrizione, opz) VALUES (source.CodScheda, source.Vers, source.CodFam, source.NumSchede, source.Descrizione, source.opz); --INSERT INTO SchemaCollFamMacc(CodScheda, Vers, CodFam, NumSchede, Descrizione, opz) --SELECT CodScheda, Vers, @CodFamTo AS CodFam, NumSchede, Descrizione, opz --FROM SchemaCollFamMacc --WHERE CodFam = @CodFamFrom END go commit go set xact_abort on go begin transaction go set ANSI_NULLS on go -- ============================================= -- Author: S.E. Locatelli -- Create date: 2015.06.16 -- Description: insert record da scheda -- ============================================= alter PROCEDURE stp_SCM_insByCodSchedaVers ( @IdxDossier INT ,@CodSchedaVers NVARCHAR(100) -- formato CodScheda.Vers --> da splittare ) AS SET NOCOUNT ON; DECLARE @CodScheda NVARCHAR(50) = '', @Vers INT = 0 -- splitto e recupero dati... SELECT @CodScheda = SUBSTRING ( @CodSchedaVers, 0, CHARINDEX ( '.', @CodSchedaVers ) ) SELECT @Vers = REPLACE ( @CodSchedaVers, @CodScheda+'.', '' ) MERGE SchemaCollMacc AS target USING (SELECT @IdxDossier as IdxDossier, sc.CodScheda, sc.Vers, MAX(ISNULL(scm.NumScheda, 0)) + 1 as NumScheda, sc.Descrizione, sc.FasiEnab FROM AnagSchede sc LEFT OUTER JOIN SchemaCollMacc scm ON sc.CodScheda = scm.CodScheda and sc.Vers = scm.Vers WHERE sc.CodScheda = @CodScheda AND sc.Vers = @Vers AND scm.IdxDossier = @IdxDossier GROUP BY sc.CodScheda, sc.Vers, sc.Descrizione, sc.FasiEnab) AS source (IdxDossier, CodScheda, Vers, NumScheda, Descrizione, FasiEnab) -- USING (SELECT @IdxDossier, CodScheda, Vers, 1, Descrizione, FasiEnab --FROM AnagSchede --WHERE CodScheda = @CodScheda -- AND Vers = @Vers) AS source (IdxDossier, CodScheda, Vers, NumScheda, Descrizione, FasiEnab) ON (target.IdxDossier = source.IdxDossier AND target.CodScheda = source.CodScheda AND target.Vers = source.Vers AND target.NumScheda = source.NumScheda) -- WHEN MATCHED THEN -- UPDATE SET Traduzione = source.traduzione WHEN NOT MATCHED THEN INSERT (IdxDossier, CodScheda, Vers, NumScheda, Descrizione, opz, FasiEnab) VALUES (source.IdxDossier, source.CodScheda, source.Vers, source.NumScheda, source.Descrizione, 'M', source.FasiEnab); go commit go