DECLARE@oldnamenvarchar(50)=N'XXXXXXXXXXXX'-- database namedeclare@newnamenvarchar(100)=N'XXXXXXXXXXXX_TEST'-- nowa nazwadeclare@logtypenvarchar(50)='.log'--log,.ldf -- support for log or ldf-- Auto pathsDECLARE@backuppathnvarchar(500)=(SELECTcast(SERVERPROPERTY('InstanceDefaultBackupPath')asvarchar))--N'D:\Backup\'DECLARE@newpathnvarchar(500)=(SELECTcast(SERVERPROPERTY('InstanceDefaultDataPath')asvarchar))DECLARE@fileNamenvarchar(500)=@backuppath+@oldname+'_'+CONVERT(VARCHAR(20),GETDATE(),112)+N'.BAK'-- filename for backupdeclare@oldldfnvarchar(500)=(SELECTnameFROMsys.master_filesWHEREdatabase_id=db_id(@oldname)and(physical_namelikeN'%'+@logtype))declare@oldmdfnvarchar(500)=(SELECTnameFROMsys.master_filesWHEREdatabase_id=db_id(@oldname)andphysical_namelikeN'%.mdf')declare@newmdfnvarchar(500)=@newpath+@newname+N'.mdf'declare@newldfnvarchar(500)=@newpath+@newname+@logtypeprint'@backuppath '+@backuppathprint'@newpath '+@newpathprint'@filename '+@filenameprint'@oldldf '+@oldldfprint'@oldmdf '+@oldmdfprint'@newmdf '+@newmdfprint'@newldf '+@newldf--backupBACKUPDATABASE@oldnameTODISK=@fileName--odtworzenie instancjiRESTOREDATABASE@newnameFROMDISK=@fileNameWITHFILE=1,MOVE@oldmdfTO@newmdf,MOVE@oldldfTO@newldf,NOUNLOAD,REPLACE,STATS=10
/*Utworzenie kopii bazy danych*/DECLARE@nameVARCHAR(50)-- database nameDECLARE@pathVARCHAR(256)-- path for backup filesDECLARE@fileNameVARCHAR(256)-- filename for backupDECLARE@fileDateVARCHAR(20)-- used for file namedeclare@pathFORCOPYVARCHAR(256)SELECT@fileDate=CONVERT(VARCHAR(20),GETDATE(),112)SET@path='d:\data\BACKUP\'--+ @fileDate + '\'DECLAREdb_cursorCURSORFORSELECTnameFROMmaster.dbo.sysdatabasesWHEREnamelike'CRM_METALBUD_2016'--('master','model','msdb','tempdb')OPENdb_cursorFETCHNEXTFROMdb_cursorINTO@nameWHILE@@FETCH_STATUS=0BEGINSET@fileName=@path+@name+'_'+@fileDate+'.BAK'BACKUPDATABASE@nameTODISK=@fileName--ODTWORZENIE INSTANCJI TESTOWEJ--if (DATEPART(DW, GETDATE()) =1) and @name like 'CRM_METALBUD_2016' --neidziela i crm--Begindeclare@newnamevarchar(100)=@name+'_TEST'declare@mdfvarchar(max)=N'D:\DATA\Database\'+@newname+'.mdf'declare@ldfvarchar(max)=N'D:\DATA\Database\'+@newname+'.ldf'RESTOREDATABASE@newnameFROMDISK=@fileNameWITHFILE=1,MOVEN'xCRM'TO@mdf,MOVEN'xCRM_log'TO@ldf,NOUNLOAD,REPLACE,STATS=10--EndFETCHNEXTFROMdb_cursorINTO@nameENDCLOSEdb_cursorDEALLOCATEdb_cursor