BULK INSERT pubs..authors2 FROM
'
c:authors.txt
'
WITH (
DATAFILETYPE
=
'
char
'
,
FIELDTERMINATOR
=
'
,
'
,
CHECK_CONSTRAINTS
)
注:
1
,数据源可以是各种文件类型如:TXT,DAT,TBL等。
2
, firstrow
-----
lastrow定义复制数据的记录数据及其位置。
3
,DATAFILETYPE :CHAR,NATIVE,VARCHAR,WIDENATIVE,NATIVE用于本地数据库(BCP)
4
,我发觉不如大略操作一下,再对应操作结果学联机文档,好理解一些!!
create table cha(col1
int
identity(
1
,
1
),col2 varchar(
10
))
---
基表
go
insert into cha values(
'
a
'
)
insert into cha values(
'
b
'
)
insert into cha values(
'
c
'
)
insert into cha values(
'
d
'
)
insert into cha values(
'
e
'
)
insert into cha values(
'
f
'
)
insert into cha values(
'
g
'
)
insert into cha values(
'
h
'
)
go
select
*
from cha()
go
create table tx(col
int
identity(
1
,
1
), chsum
int
)
---
验证表
go
set
identity_insert tx on
insert into tx(col,chsum)
select col1,binary_checksum(
*
)
from cha
go
select
*
---
查看验证表
from tx
go
----
更新基表,对第一行和第三行记录进行更新
---
update cha
set
col2
=
'
a1
'
where
col1
=
1
go
update cha
set
col2
=
'
c1
'
where
col1
=
3
go
----
查看基表哪些行改变了
---
SELECT col
FROM tx
WHERE EXISTS (
SELECT col1
FROM cha
WHERE cha.col1
=
tx.col
AND BINARY_CHECKSUM(
*
)
<>
tx.chsum)
有序数据文件
bcp 实用工具和
BULK
INSERT
语句分别接受
ORDER
提示和
ORDER
子句,它们使用户得以指定数据文件中的数据如何排序。尽管数据文件中的数据与表中的数据排序次序不必相同,但相同的排序可以提高大容量复制操作的性能。
表中数据的顺序由聚集索引确定。
ORDER
提示或
ORDER
子句中列出的顺序和列必须匹配聚集索引中的各列,并且顺序相同,以便提高大容量复制操作的性能。
例如,若要将数据从 Authors.txt 数据文件大容量复制到 pubs 数据库的 authors2 表,并指定数据文件的 au_id 列以升序排序,请在命令提示符下执行以下命令:
bcp pubs..authors2
in
authors.txt
-
c
-
t,
-
Sservername
-
Usa
-
Ppassword
-
h "
ORDER
(au_id
ASC
)"
另外,也可以在 SQL 查询分析器这样的查询工具中使用
BULK
INSERT
语句来大容量复制数据:
BULK
INSERT
pubs..authors2
FROM
'
c:authors.txt
'
WITH
(
DATAFILETYPE
=
'
char
'
,
FIELDTERMINATOR
=
'
,
'
,
ORDER
(au_id
ASC
)
)
本文介绍使用BULK INSERT及BCP工具批量导入数据至SQL Server的方法,并通过对比校验表来检测基表中已更改的数据行。
431

被折叠的 条评论
为什么被折叠?



