if exists(select name from sysobjects where name = "BCP_out_AllTables") begin drop procedure BCP_out_AllTables end GO CREATE PROCEDURE BCP_out_AllTables @dbname varchar(30), @path varchar(50) = "C:\Temp" AS SET NOCOUNT ON DECLARE @tablename varchar(30) DECLARE @cmdline varchar(125) DECLARE @ssql varchar(255) DECLARE @tabcount smallint SELECT @tabcount = 0 EXEC ('USE ' + @dbname) create table #dumptables ([name] varchar(255)) set @ssql = 'insert into #dumptables SELECT [name] from ' + @dbname + '..sysobjects where type = ''U''' exec (@ssql) DECLARE cnames CURSOR FOR select [name] from #dumptables OPEN cnames FETCH NEXT FROM cnames INTO @tablename WHILE (@@fetch_status <> -1) BEGIN IF (@@fetch_status = -2) BEGIN FETCH NEXT FROM cnames INTO @tablename CONTINUE END PRINT 'Exporting table: ' + @tablename /* build commandline */ -- Add "-S" for a remoteserver, terminator used = ~ (tilde), specify terminator after '-t', '-T' is used for trusted connection, -- use -U -P for standard security SELECT @cmdline = 'bcp ' + @dbname + '..' + @tablename + ' out ' + @path + '\' + @tablename + '.dat -c -t~ -T' EXEC master..xp_cmdshell @cmdline--, NO_OUTPUT SELECT @tabcount = @tabcount + 1 FETCH NEXT FROM cnames INTO @tablename END DEALLOCATE cnames /* Print usermessage */ SELECT CONVERT(varchar(10),@tabcount) + ' tables from database '+ @dbname + ' exported to ' + @path GO sp_help "BCP_out_AllTables" GO