Азбука BCP Страница 6. Примечания автора
|
Страница 6 из 6 Примечания автора 1. При передаче всех таблиц базы данных вы можете использовать возможности системной хранимой процедуры: sp_MSforeachtable, например: USE Northwind GO sp_MSforeachtable @Command1="master..xp_cmdshell 'BCP Northwind.dbo.? out D:\?.out -S ServerName -U sa -P -n' " GO Можно конечно обойтись и без sp_MSforeachtable, тогда стоит использовать конструкцию на подобии представленной ниже, которая создаёт файлы в csv-формате: DECLARE @tbl varchar( 40) DECLARE TableCursor CURSOR FOR select name from sysobjects where type = 'U' order by name OPEN TableCursor FETCH NEXT FROM TableCursor INTO @tbl WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @cmd varchar( 250) select @cmd = 'bcp Northwind.dbo.' + @tbl + ' out ' + 'c:\export\' + @tbl + '.csv -S ' + @@servername + ' -c -t, -U sa' select @cmd = 'master..xp_cmdshell ''' + @cmd + '''' exec( @cmd) select @cmd FETCH NEXT FROM TableCursor INTO @tbl END CLOSE TableCursor DEALLOCATE TableCurso 2. При передаче больших по размеру таблиц, можно получить дополнительный выигрыш во времени за счёт использования параметра BCP: [-b batchsize]. Подробнее об этом параметре можно прочитать в SQL Server Books Online, поиск по ключевым словам: Batch Switches. |