MS-SQL / SQL Server
모든 사용자 테이블을 파일로 익스포트하기
데이터베이스에 있는 모든 사용자 테이블을 익스포트해서 파일로 만드는 스크립트로 각각의 테이블마다 하나씩 파일을 생성한다.
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<servername>" for a remoteserver, terminator used = ~ (tilde), specify terminator after '-t', '-T' is used for trusted connection,
-- use -U<username> -P<password> 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
'DB by INNO > TIP' 카테고리의 다른 글
[SQL Server] DBCC 명령어 - 데이터베이스, 테이블, 인덱스, 카탈로그, 파일그룹 관리 요약 (0) | 2010.01.26 |
---|---|
[SQL Server] 테이블목록,필드정보 가져오는 프로시저생성 (0) | 2010.01.24 |
[SQL Server] 두 테이블의 데이터 차이 비교 - TableDiff Utility (0) | 2010.01.23 |
[SQL Server] Windows 데이터 정렬 스타일 (0) | 2010.01.17 |
[SQL Server] 데이터베이스 파일크기 확인하기 (0) | 2010.01.15 |
[SQL Server] Temp DB 저장위치 변경 (0) | 2010.01.14 |
Heterogeneous queries require the ANSI_NULLS and ANSI_WARNINGS options to be set for the connection. This ensures consistent query semantics. Enable these options and then reissue your query. (0) | 2010.01.13 |
[SQL Server] 해외 IP 접속에 대한 개발 건 - GeoIP (0) | 2010.01.03 |
[SQL Server] GeoIP, IP2Location등의 비교를 위해서 IP주소를 숫자(bigint)형식으로 변경 (0) | 2010.01.02 |