SQLServer中導(dǎo)入導(dǎo)出數(shù)據(jù)的三種方式(二)

字號:

(2)靈活度不同。
    OPENDATASOURCE只能打開相應(yīng)數(shù)據(jù)庫中的表或視圖,如果需要過濾的話,只能在SQLServer中進(jìn)行處理。而OPENROWSET可以在打開數(shù)據(jù)庫的同時對其進(jìn)行過濾,如上面的例子,在OPENROWSET中可以使用SELECT*FROMtable1對abc.mdb中的數(shù)據(jù)表進(jìn)行查詢,而OPENDATASOURCE只能引用table1,而無法查詢table1。因此,OPENROWSET比較OPENDATASOURCE更加靈活。
    2.使用命令行BCP導(dǎo)入導(dǎo)出數(shù)據(jù)
    很多大型的系統(tǒng)不僅僅提供了友好的圖形用戶接口,同時也提供了命令行方式對系統(tǒng)進(jìn)行控制。在SQLServer中除了可以使用SQL語句對數(shù)據(jù)進(jìn)行操作外,還可以使用一個命令行工具BCP對數(shù)據(jù)進(jìn)行同樣的操作。BCP是基于DB-Library客戶端庫的工具。它的功能十分強(qiáng)大,BCP能夠以并行方式將數(shù)據(jù)從多個客戶端大容量復(fù)制到單個表中,從而大大提高了裝載效率。但在執(zhí)行并行操作時要注意的是只有使用基于ODBC或SQLOLEDB的API的應(yīng)用程序才可以執(zhí)行將數(shù)據(jù)并行裝載到單個表中的操作。
    BCP可以將SQLServer中的數(shù)據(jù)導(dǎo)出到任何OLEDB所支持的數(shù)據(jù)庫的,如下面的語句是將authors表導(dǎo)出到excel文件中。
    bcppubs.dbo.authorsoutc:\temp1.xls
    -c-q-S"GNETDATA/GNETDATA"-U"sa"-P"password"