利用binary_checksum(*)来查看基础表的更新!!!及 bulk insert 补充!!!

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  - - 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 )
)

你可能感兴趣的:(sqlserver2000)