23 lines
1.3 KiB
Transact-SQL
23 lines
1.3 KiB
Transact-SQL
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 |