-- 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