Bulk Insert sample
File location : C\SampleFolder
MS-SQL: SQL SERVER 2008 R2
데이블 생성한다.
CREATE TABLE [데이터베이스이름].[db_owner].[bulksample]( |
Data File (Comma delimited CSV) - sample.csv
ComputerName | Country | IP | Code | Price | No |
Com1 | CANADA | 192.168.1.1 | 0E1 | 2000 | |
Com2 | CANADA | 192.168.1.2 | 0E2 | 2001 | |
Com3 | CANADA | 192.168.1.3 | 0E3 | 2002 | |
Com4 | CANADA | 192.168.1.4 | 0E4 | 2003 | |
Com5 | CANADA | 192.168.1.5 | 0E5 | 2004 | |
Com6 | CANADA | 192.168.1.6 | 0E6 | 2005 | |
Com7 | CANADA | 192.168.1.7 | 0E7 | 2006 | |
Com8 | CANADA | 192.168.1.8 | 0E8 | 2007 | |
Com9 | CANADA | 192.168.1.9 | 0E9 | 2008 | |
Com10 | CANADA | 192.168.1.10 | 0E10 | 2009 | |
Com11 | CANADA | 192.168.1.11 | 0E11 | 2010 | |
Com12 | CANADA | 192.168.1.12 | 0E12 | 2011 | |
Com13 | CANADA | 192.168.1.13 | 0E13 | 2012 | |
Com14 | CANADA | 192.168.1.14 | 0E14 | 2013 | |
Com15 | CANADA | 192.168.1.15 | 0E15 | 2014 | |
Com16 | CANADA | 192.168.1.16 | 0E16 | 2015 | |
Com17 | CANADA | 192.168.1.17 | 0E17 | 2016 |
위의 샘플 데이터를 양식 없이 바로 입력했을 경우.. 데이터가 깨진다.
(Microsoft SQL Server management Studio에서는 제대로 입력됨.. 하지만 프로그램을 이용하면 다름과 같이 보인다.
BULK INSERT [데이터베이스이름].[db_owner].[bulksample] |
ComputerName Country ip code price no
Com1 CANADA 192.168.1.1 0.00E+00 2000 77
Com2 CANADA 192.168.1.2 0.00E+00 2001 78
Com3 CANADA 192.168.1.3 0.00E+00 2002 79
Com4 CANADA 192.168.1.4 0.00E+00 2003 80
Com5 CANADA 192.168.1.5 0.00E+00 2004 81
Com6 CANADA 192.168.1.6 0.00E+00 2005 82
Com7 CANADA 192.168.1.7 0.00E+00 2006 83
Com8 CANADA 192.168.1.8 0.00E+00 2007 84
Com9 CANADA 192.168.1.9 0.00E+00 2008 85
Com10 CANADA 192.168.1.10 0.00E+00 2009 86
Com11 CANADA 192.168.1.11 0.00E+00 2010 87
Com12 CANADA 192.168.1.12 0.00E+00 2011 88
Com13 CANADA 192.168.1.13 0.00E+00 2012 89
Com14 CANADA 192.168.1.14 0.00E+00 2013 90
Com15 CANADA 192.168.1.15 0.00E+00 2014 91
Com16 CANADA 192.168.1.16 0.00E+00 2015 92
Com17 CANADA 192.168.1.17 0.00E+00 2016 93
그래서 포맷을 이용하여 code 부분을 수정해야한다.
C:> CD \ C:> CD SampleFolder c:\SampleFolder>bcp "[데이터베이스이름].db_ownder.bulksample" out "c:\SampleFolder\a.txt" -U[데이터베이스 유저 이름] password: 나중에 변경할 예정이르모 무조건 enter |
그후 C:\Samplefolder에 bcp.fmt 파일이 보인다.
이 파일을 sample.fmt로 복사한다.
메모장에서 열어보면 다음과 같다.
10.0 |
이것을 다음과 같이 변경하고 실행할 경우 에러가 발생한다.
sample.fmt
10.0 |
다음과 같이 명령어 입력..
BULK INSERT [데이터베이스이름].[db_owner].[bulksample] |
에러 메시지
Msg 4863, Level 16, State 1, Line 1 |
이것 때문에 고생을 많이 했다.ㅡㅡ;;
sample.fmt 을 다음과 같이 변경한다.
10.0 |
데이터가 정상적으로 입력된다.
Computer Name Country ip code price no |
다음에 ASP.NET이나 C#의 어플리케이션에서 작업 후 결과를 확인해야겠다.
아직까지는 보류중..