set xact_abort on; go begin transaction; go alter table Tags2Doc drop constraint FK_Tags2Doc_tbDocumenti ; go alter table tbDocumenti drop constraint DF_tbDocumenti_isRed , constraint DF_tbDocumenti_Spunta , constraint DF_tbDocumenti_Autore , constraint DF_tbDocumenti_SA , constraint DF_tbDocumenti_Redattore , constraint DF_tbDocumenti_SR ; go exec sp_rename 'PK_tbDocumenti', 'tmp__PK_tbDocumenti', 'OBJECT'; go exec sp_rename 'tbDocumenti', 'tmp__tbDocumenti_0', 'OBJECT'; go create table tbDocumenti( idxFile int not null identity constraint PK_tbDocumenti primary key, NomeFile nvarchar(250) not null, Nome as ('-'), fullPath nvarchar(500) not null, userId nvarchar(50) not null, isRed bit constraint DF_tbDocumenti_isRed default ((0)), NrProtocollo int, Numero int, Anno int, DataRic datetime, DataDoc datetime, Commessa as ((right(replicate('0',(4))+[NumeroCommessa],(4))+'-')+right(replicate('0',(4))+[AnnoCommessa],(4))), NumeroCommessa nvarchar(4), AnnoCommessa nvarchar(4), Fase nvarchar(250), Fonte nvarchar(100), Oggetto nvarchar(250), InOut nvarchar(3), Tipologia nvarchar(100), Riferimenti nvarchar(100), Attivita nvarchar(100), Autore nvarchar(50) constraint DF_tbDocumenti_Autore default ('-'), SA nvarchar(4) constraint DF_tbDocumenti_SA default ('-'), Redattore nvarchar(50) constraint DF_tbDocumenti_Redattore default ('-'), SR nvarchar(4) constraint DF_tbDocumenti_SR default ('-'), Annotazioni ntext, LegUtente nvarchar(25), NoteSystemManager ntext, Spunta int constraint DF_tbDocumenti_Spunta default ((0)), Num_Fattura nvarchar(50) ); go set NUMERIC_ROUNDABORT off set ANSI_NULLS on set ANSI_PADDING on set ANSI_WARNINGS on set CONCAT_NULL_YIELDS_NULL on set QUOTED_IDENTIFIER on set ARITHABORT on; go create index ix_tbDocumenti_Commessa on tbDocumenti(Commessa desc); go create index i_commessa on tbDocumenti(Commessa); go create index i_fase on tbDocumenti(Fase); go create index i_fonte on tbDocumenti(Fonte); go create index i_InOut on tbDocumenti(InOut); go create index ix_dataRic on tbDocumenti(DataRic); go exec sp_addextendedproperty 'MS_Description', '([dbo].[f_shortFileName]([Numero],[Anno],[DataDoc],[InOut],[Oggetto],substring([NomeFile],(0),len([NomeFile])-(3)),substring([NomeFile],len([NomeFile])-(3),(4))))', 'SCHEMA', 'dbo', 'TABLE', 'tbDocumenti', 'COLUMN', 'Nome'; go set identity_insert tbDocumenti on; go insert into tbDocumenti(idxFile,NomeFile,fullPath,userId,isRed,NrProtocollo,Numero,Anno,DataRic,DataDoc,NumeroCommessa,AnnoCommessa,Fase,Fonte,Oggetto,InOut,Tipologia,Riferimenti,Attivita,Autore,SA,Redattore,SR,Annotazioni,LegUtente,NoteSystemManager,Spunta,Num_Fattura) select idxFile,NomeFile,fullPath,userId,isRed,NrProtocollo,Numero,Anno,DataRic,DataDoc,NumeroCommessa,AnnoCommessa,Fase,Fonte,Oggetto,InOut,Tipologia,Riferimenti,Attivita,Autore,SA,Redattore,SR,Annotazioni,LegUtente,NoteSystemManager,Spunta,Num_Fattura from tmp__tbDocumenti_0; go set identity_insert tbDocumenti off; go drop table tmp__tbDocumenti_0; go alter table Tags2Doc add constraint FK_Tags2Doc_tbDocumenti foreign key(idxFile) references tbDocumenti(idxFile) on update cascade; go commit; go set xact_abort on; go begin transaction; go set ANSI_NULLS on; go create VIEW v_selFonti_expl AS SELECT Codice AS value, Descrizione AS label, ISNULL(Telefono, '') AS Telefono, ISNULL(Fax, '') AS Fax, ISNULL(Email, '') AS Email FROM SciP_2000.dbo.fornitori 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 = "fornitori (SciP_2000.dbo)" Begin Extent = Top = 6 Left = 38 Bottom = 353 Right = 223 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_selFonti_expl'; go exec sp_addextendedproperty 'MS_DiagramPaneCount', 1, 'SCHEMA', 'dbo', 'VIEW', 'v_selFonti_expl'; go commit; go set xact_abort on; go begin transaction; go set ANSI_NULLS on; go create PROCEDURE stp_VSFE_getByFonte ( @fonte nvarchar(200) ) AS SET NOCOUNT ON; SELECT value, label, Telefono, Fax, Email FROM dbo.v_selFonti_expl WHERE label = @fonte go commit; go drop procedure stp_utility_updateNomi; go set xact_abort on; go begin transaction; go set ANSI_NULLS on; go /*************************************** * FUNCTION f_shortFileName * * calcola nome breve del file da regola * nnnn-aaaa_BB_Descrizione breve troncata_nomefile.estensione * * Steamware, S.E.L. * mod: 2013.02.22 * ****************************************/ alter FUNCTION f_shortFileName(@numero INT, @anno INT, @dataDoc DATETIME, @inOut NVARCHAR(3), @oggetto NVARCHAR(250), @nome NVARCHAR(250), @tipoDoc NVARCHAR(4), @fullPath NVARCHAR(250)) RETURNS NVARCHAR(250) AS BEGIN ---------------------------------------- -- dichiaro le componenti del nome ---------------------------------------- DECLARE @AA NVARCHAR(10), @BB NVARCHAR(2), @CC NVARCHAR(150), @DD NVARCHAR(130), @nomeFin NVARCHAR(MAX); ---------------------------------------- -- dichiaro variabili x gestione limite LEN ---------------------------------------- DECLARE @maxFullPathLenght INT = 225 -- 250 - @aa(14) - 4 (.txt) x la parte finale del nome ".xxx" DECLARE @fullPathLenght INT DECLARE @nomeLen INT = 0 DECLARE @extraLen INT = 0 DECLARE @sxPart INT = 15 -- lungh minima a sx... ---------------------------------------- -- calcolo le varie componenti ---------------------------------------- -- protocollo! SET @AA = dbo.f_padLeft(CAST(CAST(@numero AS INT) AS NVARCHAR(10)), 5,'0') + '-' + CAST(@Anno AS NVARCHAR(4)); -- check digit SET @BB = dbo.f_checkDigit(@numero, @anno, @dataDoc, @inOut, @nome); -- nome trimmato @fullPath + @nome <= @maxFullPathLenght, trimmo nome prendendo left/right) SET @fullPathLenght = LEN(@fullPath + @nome) IF (@fullPathLenght > @maxFullPathLenght) BEGIN -- calcolo LEN del nome, es 202 SET @nomeLen = LEN(@nome) -- calcolo "sforamento", es 301-225=76 SET @extraLen = @fullPathLenght - @maxFullPathLenght -- 4 char "bloccati" a dx SET @sxPart = (@nomeLen - @extraLen) SET @DD = LEFT(@nome, @sxPart) END ELSE BEGIN SET @DD = @nome; END ---------------------------------------- -- nome completo finale ---------------------------------------- --SET @nomeFin = @AA + '_' + @BB + '_' + @CC + '_' + @DD -- versione vecchia: oggetto eliminato perchè in path! 2012.10.22 SET @nomeFin = @AA + '_' + @BB + '_' + @DD -- ulteriore pulizia... SET @nomeFin = REPLACE(REPLACE(@nomeFin,'/','-'),'\','-') RETURN REPLACE(@nomeFin + '.','..','.') + REPLACE(@tipoDoc,'.','') END go commit; go set xact_abort on; go begin transaction; go alter table Tags2Doc drop constraint FK_Tags2Doc_tbDocumenti ; go alter table tbDocumenti drop constraint DF_tbDocumenti_isRed , constraint DF_tbDocumenti_Autore , constraint DF_tbDocumenti_SA , constraint DF_tbDocumenti_Redattore , constraint DF_tbDocumenti_SR , constraint DF_tbDocumenti_Spunta ; go exec sp_rename 'PK_tbDocumenti', 'tmp__PK_tbDocumenti', 'OBJECT'; go exec sp_rename 'tbDocumenti', 'tmp__tbDocumenti_1', 'OBJECT'; go create table tbDocumenti( idxFile int not null identity constraint PK_tbDocumenti primary key, NomeFile nvarchar(250) not null, Nome as ([dbo].[f_shortFileName]([Numero],[Anno],[DataDoc],[InOut],[Oggetto],substring([NomeFile],(0),len([NomeFile])-(3)),substring([NomeFile],len([NomeFile])-(3),(4)),[fullPath])), fullPath nvarchar(500) not null, userId nvarchar(50) not null, isRed bit constraint DF_tbDocumenti_isRed default ((0)), NrProtocollo int, Numero int, Anno int, DataRic datetime, DataDoc datetime, Commessa as ((right(replicate('0',(4))+[NumeroCommessa],(4))+'-')+right(replicate('0',(4))+[AnnoCommessa],(4))), NumeroCommessa nvarchar(4), AnnoCommessa nvarchar(4), Fase nvarchar(250), Fonte nvarchar(100), Oggetto nvarchar(250), InOut nvarchar(3), Tipologia nvarchar(100), Riferimenti nvarchar(100), Attivita nvarchar(100), Autore nvarchar(50) constraint DF_tbDocumenti_Autore default ('-'), SA nvarchar(4) constraint DF_tbDocumenti_SA default ('-'), Redattore nvarchar(50) constraint DF_tbDocumenti_Redattore default ('-'), SR nvarchar(4) constraint DF_tbDocumenti_SR default ('-'), Annotazioni ntext, LegUtente nvarchar(25), NoteSystemManager ntext, Spunta int constraint DF_tbDocumenti_Spunta default ((0)), Num_Fattura nvarchar(50) ); go set NUMERIC_ROUNDABORT off set ANSI_NULLS on set ANSI_PADDING on set ANSI_WARNINGS on set CONCAT_NULL_YIELDS_NULL on set QUOTED_IDENTIFIER on set ARITHABORT on; go create index ix_tbDocumenti_Commessa on tbDocumenti(Commessa desc); go create index i_commessa on tbDocumenti(Commessa); go create index i_fase on tbDocumenti(Fase); go create index i_fonte on tbDocumenti(Fonte); go create index i_InOut on tbDocumenti(InOut); go create index ix_dataRic on tbDocumenti(DataRic); go exec sp_addextendedproperty 'MS_Description', 'dbo.f_shortFileName([Numero],[Anno],[DataDoc],[InOut],[Oggetto],substring([NomeFile],(0),len([NomeFile])-(3)),substring([NomeFile],len([NomeFile])-(3),(4)),fullPath)', 'SCHEMA', 'dbo', 'TABLE', 'tbDocumenti', 'COLUMN', 'Nome'; go set identity_insert tbDocumenti on; go insert into tbDocumenti(idxFile,NomeFile,fullPath,userId,isRed,NrProtocollo,Numero,Anno,DataRic,DataDoc,NumeroCommessa,AnnoCommessa,Fase,Fonte,Oggetto,InOut,Tipologia,Riferimenti,Attivita,Autore,SA,Redattore,SR,Annotazioni,LegUtente,NoteSystemManager,Spunta,Num_Fattura) select idxFile,NomeFile,fullPath,userId,isRed,NrProtocollo,Numero,Anno,DataRic,DataDoc,NumeroCommessa,AnnoCommessa,Fase,Fonte,Oggetto,InOut,Tipologia,Riferimenti,Attivita,Autore,SA,Redattore,SR,Annotazioni,LegUtente,NoteSystemManager,Spunta,Num_Fattura from tmp__tbDocumenti_1; go set identity_insert tbDocumenti off; go drop table tmp__tbDocumenti_1; go alter table Tags2Doc add constraint FK_Tags2Doc_tbDocumenti foreign key(idxFile) references tbDocumenti(idxFile) on update cascade; go commit; go -- registro versione... INSERT INTO [dbo].[LogUpdateDb] ([Versione],[Data]) VALUES(125, GETDATE()) GO SELECT TOP 10 * FROM LogUpdateDb ORDER BY Versione DESC GO