Robert L. Stewart
robert at webedb.com
Thu Mar 27 09:14:46 CDT 2008
For everyone except John (would not want to waste his time)
CREATE PROCEDURE [dbo].[usp_CopyDatabase]
@strDBNameFrom varchar(100),
@strDBNameTo varchar(100),
@strDBDir varchar(255)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @Sql varchar(max)
SET @Sql = 'BACKUP DATABASE ' + @strDBNameFrom + ' TO DISK = ' +
@strDBDir + @strDBNameFrom + '.bak WITH INIT'
EXEC sp_executesql @Sql
SET @Sql = 'RESTORE FILELISTONLY FROM DISK = ' + @strDBDir +
@strDBNameFrom + '.bak'
EXEC sp_executesql @Sql
SET @Sql = RESTORE DATABASE ' + @strDBNameTo +
' FROM DISK = ' + @strDBDir + @strDBNameFrom + '.bak
WITH MOVE ' + @strDBNameFrom + '_Data' TO ' + @strDBDir +
@strDBNameTo + '.mdf,
MOVE ' + @strDBNameFrom + '_Log TO ' + @strDBDir +
@strDBNameTo + '.ldf'
EXEC sp_executesql @Sql
END
I did not lookup the exact syntax. You might meed to enclose the
dbname and other parts of
the variables in CHAR(39), the single quote.
Robert