У меня есть хранимая процедура копирования для базы данных. Во время копирования я делаю резервную копию базы данных с чем-то вроде:
exec('backup database [' + @source + '] ' +
'to disk = N''' + @backupdir + '\copybackup'' ' +
'with noformat, noinit, name=N''copybackup-full'', ' +
'SKIP, NOREWIND, NOUNLOAD, STATS = 10;');
А затем создайте и очистите базу данных, и восстановите ее:
exec('create database [' + @dest + '];');
exec('restore database [' + @dest + '] ' +
'from disk = N''' + @backupdir + '\copybackup'' ' +
'with file = 1, ' +
'move N''' + @source + ''' to N''' + @dbdir + '\' + @dest +
'.mdf'', ' +
'move N''' + @source + '_log'' to N''' + @dbdir + '\' + @dest +
'_log.ldf'', ' +
'NOUNLOAD, REPLACE, STATS = 10;');
Так что все хорошо. За исключением того, что теперь у меня остался файл в @backupdir \ copybackup, который мне действительно не нужен. Как мне от этого избавиться?
Так как это хранимая процедура, я на самом деле не хочу, чтобы ей пришлось оборачивать все это в пакетный файл или какую-то другую хоккейную вещь на самом сервере. Я хотел бы позаботиться об этом из T-SQL прямо здесь, когда я создаю беспорядок в первую очередь. Я просмотрел MS Docs, но не радости. (SQL Server 2005, пожалуйста)
Идеи