GV Phi Loan - Khoa CNTT – HUI
1
N i dung
•
•
•
•
L nh BCP
L nh BULK INSERT
Import And Export Wizard
Project SSIS
GV Phi Loan - Khoa CNTT – HUI
2
N
̀
̀
• SQL Server
̀
̀
̀ u.
̀ u
̀
̀
̀
̀
̀
̀
̀
̀
̀
̀
– L nh BCP
– L nh BULK INSERT
–D
̀ nh SELECT INTO
–D
̀
̀
̀I
̀And Export Wizard
– Project SSIS
GV Phi Loan - Khoa CNTT – HUI
3
BCP (Bulk Copy Program)
• Là 1 ti n ích (utility) mà ng i dùng có th
th c hi n t d u nh c l nh.
• Đ
̀
̀ copy d li u t SQL server
thành 1 file c a h
u hành hay ng c l i.
• R t th
̀ ̀
̀ chuy n 1 l ng l n
d li u vào các b ng c a SQL server t các
ch ng trình khác nh t các DBMS khác
GV Phi Loan - Khoa CNTT – HUI
4
BCP (Bulk Copy Program)
GV Phi Loan - Khoa CNTT – HUI
5
Ti n ích BCP
• D li u chuy n t ngu n bên ngoài vào
database c ̀“QL̀
̀
c g i là BCP IN
(c ̀
c g i là importing)
• N u d li ̀
c chuy n t SQL Server ra
ngu ̀
̀
̀
c g i là BCP OUT (còn
c g i là exporting). Ngu n ngoài ph i là
̀ ̀ n (flat file).
GV Phi Loan - Khoa CNTT – HUI
6
Ti n ích BCP
• Đ ̀
–D
–H
̀
̀
̀
̀
̀ ̀
̀ ̀
̀ ̀
̀ ̀ ̀
̀
̀ ̀ ̀
̀
̀ ̀
̀ ̀
̀ ̀ ng.
GV Phi Loan - Khoa CNTT – HUI
ng:
̀
̀ ̀
̀
7
Các yêu c u khi th c hi n BCP
̀F ̀ li u ch a d li ̀
c nh p vào
c n ph i có d ng row/column.
̀F ̀ li u nên có ký hi u k t thúc hàng
(row terminator) và k t thúc c t (column
terminator) sao cho SQL Server có th nh n
bi ̀
c khi truy n d li u.
̀C u trúc c a file d li u và b ng c a SQL
Server c n ph ̀ ng nh t.
GV Phi Loan - Khoa CNTT – HUI
8
Cú pháp l nh BCP
BCP [[database_name.][owner].]table_name
{in|out|queryout|format} data_file
[-m max_errors] [-f format_file] [-x] [-e err_file]
[-F first_row] [-L last_row][-b batch_size]
[-n] [-c] [-w] [-N]
[-t field_term] [-r row_term]
[-i input_file] [-o output_file] [-a packet_size]
[-S server_name] [-U login_id] [-P password]
[-T]
GV Phi Loan - Khoa CNTT – HUI
9
Cú pháp BCP
• in|out|queryout|format là h ng c a l nh.
– In: copy d li u t 1 file d li u vào b ng c
CSDL.
– Out: copy d li u t b ng CSDL vào 1 file d
–Q
̀
̀ ̀ ̀ ̀ ̀
̀ n
–F
̀ ̀ ̀ ̀
̀
̀
̀
̀ ̀
̀ - ̀- ̀- ̀ ̀-N ̀ ̀ ̀
̀
̀
̀
̀ ̀
̀K ̀
̀ ̀
̀
̀ ̀ ̀ ̀ ̀ ̀ ̀
̀
̀
̀
T ̀
̀ ̀
̀ ̀
̀
̀ ̀ ̀ n
GV Phi Loan - Khoa CNTT – HUI
a
li u.
̀
̀
̀
̀
f
10
Cú pháp BCP
data_file là
ng d n y
c a file d
li u, có th ch a t 1 n 255 ký t .
-m max_errors: là s l i c c i có th x y ra
trong khi th c thi l nh. M i hàng không th
copy b i l nh
c tính là 1 l i. M c nh là
10 l i.
GV Phi Loan - Khoa CNTT – HUI
11
Cú pháp BCP
• -f format_filè ̀
̀ ̀ ̀
̀
̀
̀
̀ ̀ ̀ ̀
̀ ng.
– N u -f̀
̀
̀
̀ ̀ ̀ n
format, ̀format_filè
̀ ̀
̀ ̀
̀ ̀
̀Đ ̀ ̀ ̀
̀
̀XML ̀
̀
̀ ̀
̀
̀ ̀ n x.
–N ̀ ̀
̀
̀ ̀ ̀
̀ ̀ ̀
̀̀ ̀ ̀ ̀
̀
̀
̀ ̀ n.
GV Phi Loan - Khoa CNTT – HUI
12
Cú pháp BCP
-e err_file là
ng d n y
c a file l i (error
file). File này
c dùng
l u tr các hàng mà l nh
không th copy
c t file vào CSDL. N u khơng có
ch n này, file l i khơng th t o
c.
-b batch_size là s hàng trên 1 batch d li u s
c
copy. Trong tr ng h p b l i, SQL Server s commit
hay rolls back giao d ch (transaction) theo t ng batch
d li u. M c nh t t c d li u trong file d li u xác
nh s
c copy thành 1 batch.
GV Phi Loan - Khoa CNTT – HUI
13
Cú pháp BCP
• -F first_roẁ ̀ ̀
̀ ̀ ̀
̀
̀
̀ ̀
̀ ̀
̀ ̀
̀
̀M ̀
̀ ̀
̀
̀
̀
̀ ̀1.
• -L last_roẁ ̀ ̀
̀ ̀ ̀
̀
̀ p.
•
̀
̀ ̀
̀ ̀ ̀ ̀
̀ ̀ ̀ ̀ n 2^63-1.
GV Phi Loan - Khoa CNTT – HUI
̀
̀
̀ ̀
̀ ̀
̀
̀
̀
̀
̀
̀
14
Cú pháp BCP
• -ǹ
̀
database.
• -c̀
̀
̀
̀
̀
̀
̀
̀ ̀
̀
• -Ǹ
̀
̀
̀
̀
character.
̀
̀
̀
̀
̀
̀
̀
̀
̀
̀
̀
nh
̀M ̀
̀
̀
̀
̀
̀
̀̀
̀
̀
̀ ̀
̀ ̀
̀
̀ ̀
̀
̀
̀ ng.
̀ ̀ ̀ ̀ ̀ ̀
̀
̀U
̀ ̀ ̀
GV Phi Loan - Khoa CNTT – HUI
̀
̀
̀
̀ ̀
15
Cú pháp BCP
• -ẁ
̀
̀
i \t̀
̀
̀
̀ ̀
̀
- ̀
̀̀
terminator). M
- ̀
̀
terminator). M
-̀
̀
- ̀
̀
̀
Unicode (nchar ̀
̀
̀
̀
̀ ̀
̀
̀
̀
̀
̀ ̀\ǹ
̀
̀
̀ ̀
ng.
̀ nh ký t k t thúc c t (field
̀ nh là \t.
̀ nh ký t k t thúc hàng (row
̀ nh là \n.
̀ nh tên c a file ngõ vào.
̀ nh tên c a file ngõ ra.
GV Phi Loan - Khoa CNTT – HUI
16
Cú pháp BCP
- ̀
̀ ̀ nh s byte cho 1 gói tin
trên m ng (network packet), có th có t 4096
n 65535 bytes; M ̀ nh là 4096.
Kích c gói tin càng l ̀ ̀
̀
̀
̀
th c thi c a l nh. N u gói tin q l n khơng
th t ̀
c thì kích c m ̀ nh s
c
dùng.
GV Phi Loan - Khoa CNTT – HUI
17
Cú pháp BCP
-S server_name[\instance_name]: xác nh
n
hình c a SQL Server
c n i n. N u không
dùng tùy ch n này, l nh bcp k t n i n
n
hình m c nh c a SQL Server trên máy tính m c
nh. Tùy ch n này
c yêu c u khi th c thi
l nh bcp t 1 máy tính xa trên m ng.
-U login_id : xác nh login ID
c dùng
k t
n i t i SQL Server.
GV Phi Loan - Khoa CNTT – HUI
18
Cú pháp BCP
-P password: xác nh passowrd cho login ID.
N u không dùng tùy ch n này, bcp s h i
password khi ch y. N u dùng tùy ch n này mà
khơng xác nh password thì bcp s dùng
password m c nh.
-T: t i SQL server ng
(trusted connection) a
không n ng U và-P
GV Phi Loan - Khoa CNTT – HUI
t
i tin
i ng
y
ng,
19
V̀
•
c
C
̀
T
̀
̀
̀
̀̀
̀ T ̀
̀-T
̀
̀T ̀ ̀ ̀ ̀
̀
̀
̀ ̀ ̀ ng T)
•
̀
T ̀̀ ̀ T
̀ Usa
SPHILOAN-PC -P c
C
̀ ̀ ̀ ̀
̀T ̀ ̀ ̀ ̀
̀
̀
̀
̀ ̀ ̀ o SQL server thông
qua user sa
GV Phi Loan - Khoa CNTT – HUI
20
V̀
• USE toyworld
SELECT * INTO toy2 from Toys where 1=2
bcp toyworld.dbo.toy2 in toy.txt T c
C
̀ ̀ ̀ ̀ ̀
̀
̀
̀
toy2
• B ̀ “ELECT̀ T N
̀FROM̀
̀
̀ T N
̀ T c
̀C
̀ ̀ T N
̀ ̀
̀ ̀
̀
GV Phi Loan - Khoa CNTT – HUI
̀
ng
̀
̀
i
21
L nh BULK INSERT
• Đ
̀
̀
̀
̀
̀
̀ ̀
̀ ̀ ̀
̀
̀
i vào b ng SQL server
• L nh BULK INSERT có th
c th c thi t
d u nh c l nh hay t query analyzer.
• Có th dùng l
̀BULK̀IN“ERT̀ chèn d
li u t 1 hay nhi u ngu n vào b ng SQL
Server.
GV Phi Loan - Khoa CNTT – HUI
22
Cú pháp l nh BULK INSERT
BULK INSERT [ [ 'database_name'.] [ 'owner' ].] {
'table_name' FROM 'data_file' }
[ WITH
(
[ BATCHSIZE [ = batch_size ] ]
[ [ , ] CHECK_CONSTRAINTS ]
[ [ , ] DATAFILETYPE [ =
{ 'char' | 'native'| 'widechar' | 'widenative' } ] ]
[ [ , ] FIELDTERMINATOR [ = 'field_terminator' ] ]
[ [ , ] FIRSTROW [ = first_row ] ]
[ [ , ] LASTROW [ = last_row ] ]
[ [ , ] MAXERRORS [ = max_errors ] ]
[ [ , ] ROWTERMINATOR [ = 'row_terminator' ] ]
)
]
GV Phi Loan - Khoa CNTT – HUI
23
Cú pháp l nh BULK INSERT
• BATCHSIZE [ = batch_size ̀ ̀ ̀ nh s hàng
trong 1 batch. M ̀
̀
c copy vào
server nh 1 transaction.
• CHECK_CONSTRAINTS: yêu c u b ̀ ̀
constraint trong b ng ph ̀
c ki m tra
trong lúc th c thi l nh. M ̀ nh l nh b qua
các constraint cua b ng.
GV Phi Loan - Khoa CNTT – HUI
24
Cú pháp l nh BULK INSERT
• DATAFILETYPE [ = {'char' | 'native' | 'widechar'
| 'widenative' } ]:
– Char: file d li u ki u ký t
– Native: s d ng ki u d li u hi n có c a
database
– Widechar: file d li u ki u ký t Unicode
– Widenative: t ng t nh native, ngo i
tr các c t char, varchar và text s
c
l u tr theo ki u Unicode
GV Phi Loan - Khoa CNTT – HUI
25