您的位置:首页 > 其它

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

2006-10-02 07:36 274 查看

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)


)



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐