set ANSI_NULLS on; go /*************************************** * FUNCTION f_siglaUtente * * calcola la sigla utente dalla vista sulla tab utenti * * Steamware, S.E.L. * mod: 2013.02.20 * ****************************************/ create FUNCTION f_siglaUtente(@utente NVARCHAR(MAX)) RETURNS NVARCHAR(4) AS BEGIN ---------------------------------------- -- dichiaro le componenti del nome ---------------------------------------- DECLARE @answ NVARCHAR(4) SELECT @answ = ISNULL(sigla,'-') FROM v_selUtenti WHERE ( Cognome + ' ' + Nome = @utente ) OR ( Nome + ' ' + Cognome = @utente ) -- se fosse nullo provo a prendere le iniziali.. IF(ISNULL(@answ,'-') = '-') BEGIN DECLARE @indice INT SELECT @indice = CHARINDEX(' ', @utente) SET @answ = LEFT(@utente,1)+SUBSTRING(@utente,@indice+1,1) END RETURN UPPER(ISNULL(@answ,'-')) END go set xact_abort on; go begin transaction; go alter table tbDocumenti alter column SA nvarchar(4); go alter table tbDocumenti alter column SR nvarchar(4); go alter table tbDocumenti add constraint DF_tbDocumenti_Autore default ('-') for Autore, constraint DF_tbDocumenti_SA default ('-') for SA, constraint DF_tbDocumenti_Redattore default ('-') for Redattore, constraint DF_tbDocumenti_SR default ('-') for SR; go set ANSI_NULLS on; go /************************************* * STORED PROCEDURE stp_tbDocs_insert * * crea un nuovo doc con i valori minimi x inserimento * * mod : 2012.10.04 * aut : S.E. Locatelli **************************************/ alter PROCEDURE stp_tbDocs_insert ( @nome NVARCHAR(250), @fullPath NVARCHAR(500), @userId NVARCHAR(50), @isProtocollo BIT, --significa va calcolato NrProtocollo, Numero, Anno (corrente) @DataRic DATETIME, @DataDoc DATETIME, @NumeroCommessa NVARCHAR(4), @AnnoCommessa NVARCHAR(4), @Fase NVARCHAR(250), @Fonte NVARCHAR(100), @Oggetto NVARCHAR(250), @InOut NVARCHAR(3), @Autore NVARCHAR(50), @Redattore NVARCHAR(50), @isRed BIT, @newIdxFile INT OUTPUT ) AS BEGIN tran -- dichiarazioni DECLARE @Anno INT DECLARE @Numero INT DECLARE @NrProtocollo INT DECLARE @SA NVARCHAR(4) DECLARE @SR NVARCHAR(4) --DECLARE @fullName NVARCHAR(250) -- calcolo valori base SET @Anno = YEAR(GETDATE()) SET @Numero = ( SELECT CASE WHEN @isProtocollo=1 THEN dbo.f_nextNumeroByAnno(@Anno) ELSE 0 END ) SET @NrProtocollo = ( SELECT CASE WHEN @isProtocollo=1 THEN dbo.f_nextNrProtocollo() ELSE 0 END ) -- calcolo sigla autore e redattore... SELECT @SR = dbo.f_siglaUtente(@Redattore) SELECT @SA = dbo.f_siglaUtente(@Autore) -- vero insert INSERT INTO tbDocumenti(NomeFile,fullPath,userId,isRed,NrProtocollo,Numero,Anno,DataRic,DataDoc,NumeroCommessa,AnnoCommessa,Fase,Fonte,Oggetto,InOut,Autore,Redattore,SA,SR) VALUES (@nome,@fullPath,@userId,@isRed,@NrProtocollo,@Numero,@Anno,@DataRic,@DataDoc,@NumeroCommessa ,@AnnoCommessa,@Fase,@Fonte,@Oggetto,@InOut,@Autore,@Redattore,@SA,@SR) SELECT @newIdxFile = SCOPE_IDENTITY() COMMIT tran RETURN @newIdxFile go commit; go set xact_abort on; go begin transaction; go set ANSI_NULLS on; go create VIEW v_selUtenti AS SELECT UtenteAD, Cognome, Nome, email, sigla, attivo FROM ETS_Anagrafica.dbo.Utenti 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 = "Utenti (ETS_Anagrafica.dbo)" Begin Extent = Top = 6 Left = 38 Bottom = 291 Right = 208 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 = 11 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_selUtenti'; go exec sp_addextendedproperty 'MS_DiagramPaneCount', 1, 'SCHEMA', 'dbo', 'VIEW', 'v_selUtenti'; go commit; go -- registro versione... INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(120, GETDATE()) GO SELECT TOP 10 * FROM LogUpdateDb ORDER BY Versione DESC GO