PDC_REPORT_CreazioneDB/sql/storedCollaudo/dbo_CreaTabellaBackUp.sql
2025-06-06 19:02:52 +02:00

40 lines
1.3 KiB
Transact-SQL

-- Schema: dbo
-- Stored Procedure: CreaTabellaBackUp
CREATE procedure [dbo].[CreaTabellaBackUp](
@tableName varchar(100),
@schema varchar(100),
@suffix varchar(100) = ''
)
as
declare @data datetime
declare @dataString varchar(20)
declare @SQL nvarchar(4000)
set @data = getdate()
set @dataString = convert(varchar(4), year(@data)) + right('0' + convert(varchar(2), month(@data)), 2) + right('0' + convert(varchar(2), day(@data)), 2)
-- Se è stato passato un suffisso per specificare il motivo del backup della tabella (es: PreGenerazione...)
if isnull(@suffix, '') <> ''
set @suffix = '_' + @suffix
-- Se la tabella con data + suffisso è già presente si aggiunge alla stringa data anche l'orario
IF EXISTS (SELECT 'X' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = @tableName + '_' + @dataString + @suffix AND TABLE_SCHEMA = @schema)
begin
print 'La tabella ' + @schema + '.' + @tableName + '_' + @dataString + @suffix + ' già esiste nel DB.'
set @dataString = @dataString + '_' + right('0' + convert(varchar(2), DATEPART(hour, @data)), 2) + right('0' + convert(varchar(2), DATEPART(minute, @data)), 2) + right('0' + convert(varchar(2), DATEPART(second, @data)), 2)
end
set @SQL = 'select * into ' + @schema + '.' + @tableName + '_' + @dataString + @suffix + ' from ' + @schema + '.' + @tableName
print @SQL
exec sp_executeSql @SQL