dumpDatabase
IF EXISTS (SELECT * FROM sysobjects
WHERE id = OBJECT_ID('dbo.dumpDatabase')
AND sysstat & 0xf = 4)
DROP PROCEDURE dbo.dumpDatabase
GO
CREATE PROCEDURE dumpDatabase
@dbName VARCHAR(30)= ' ',
@serverName VARCHAR(30) = ' ',
@saPassword VARCHAR(30) = ' ',
@dumpDevice Varchar(80) = ' ',
@debug VARCHAR(5) = 'false'
AS
DECLARE @CMD VARCHAR(255),
@CMDstatus INT,
@myName VARCHAR(30)
/*
Procedure dumpDatabase truncates the log in a datbase then dumps
the database to an init'ed file (no device needed). This means it
will blow away any existing file of that name.
*/
SET NOCOUNT ON
SELECT @myName = 'admin.dumpDatabase'
IF (@dbName = ' ') OR (@serverName = ' ') or (@dumpDevice = ' ') RETURN 1
/* dump the database's log on the source system */
SELECT @CMD = 'isql -Usa -P' + @saPassword + ' -S' + @serverName +
' -dmaster -Q"' + 'DUMP TRANSACTION ' + @dbName +
' with TRUNCATE_ONLY' + '"'
EXEC @CMDstatus = dispatch @CMD, @myName, @debug
IF (@CMDstatus <> 0) RETURN @CMDstatus
/* dump the database on the source system */
SELECT @CMD = 'isql -Usa -P' + @saPassword + ' -S' + @serverName +
' -dmaster -Q"DUMP DATABASE ' + @dbName +
" TO DISK = '" + RTRIM(LTRIM(@dumpDevice)) +
"' WITH INIT, RETAINDAYS = 0" + '"'
EXEC @CMDstatus = dispatch @CMD, @myName, @debug
IF (@CMDstatus <> 0) RETURN @CMDstatus
RETURN
GO