日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
BCP數(shù)據(jù)庫批量處理:高效管理數(shù)據(jù)大規(guī)模操作(bcp數(shù)據(jù)庫批量處理)

在現(xiàn)代化的商業(yè)世界中,企業(yè)需要處理大量的數(shù)據(jù),以使其更好地運營并支持業(yè)務(wù)決策。數(shù)據(jù)管理在這個過程中是至關(guān)重要的,因為它要求企業(yè)有能力快速且有效地處理大量數(shù)據(jù)。BCP(批量數(shù)據(jù)庫復(fù)制程序)是一個流行的工具,它可以幫助企業(yè)管理大規(guī)模數(shù)據(jù)操作,讓數(shù)據(jù)庫管理員輕松應(yīng)對不斷增長的數(shù)據(jù)需求。

成都創(chuàng)新互聯(lián)公司2013年至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都做網(wǎng)站、成都網(wǎng)站建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元臨城做網(wǎng)站,已為上家服務(wù),為臨城各地企業(yè)和個人服務(wù),聯(lián)系電話:18980820575

BCP是Microsoft SQL Server的一部分,它是一個命令行實用工具,可用于導(dǎo)入和導(dǎo)出大量數(shù)據(jù)。BCP提供了許多優(yōu)點,比如高效處理大量數(shù)據(jù)、靈活的數(shù)據(jù)格式支持等等。此外,BCP還提供了很多方法來簡化數(shù)據(jù)庫管理,如導(dǎo)入和導(dǎo)出數(shù)據(jù)、備份和還原數(shù)據(jù)庫、復(fù)制和傳輸數(shù)據(jù)等等。

BCP的使用通常需要執(zhí)行多個步驟。管理員必須創(chuàng)建一個BCP格式文件,用于指定導(dǎo)入或?qū)С龅臄?shù)據(jù)的數(shù)據(jù)格式。接下來,管理員可以使用命令行執(zhí)行BCP任務(wù)。在任務(wù)執(zhí)行期間,BCP將讀取或?qū)懭霐?shù)據(jù),同時還會提供各種控制選項,如行分隔符、列分隔符等等。

BCP的主要優(yōu)點是能夠快速地處理大量數(shù)據(jù)。由于BCP是基于命令行的,因此它可以在沒有GUI界面的情況下快速執(zhí)行。此外,由于它可以處理多個文件和表,它可以應(yīng)對各種數(shù)據(jù)格式和數(shù)量的數(shù)據(jù)。另外,BCP還提供了數(shù)據(jù)安全性控制,能夠根據(jù)需要進(jìn)行加密和解密。

在實際應(yīng)用中,可以使用BCP來管理大規(guī)模的數(shù)據(jù)庫操作。通過使用BCP,管理員可以將大量數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫中,也可以使用它來導(dǎo)出數(shù)據(jù)以便其他系統(tǒng)使用。例如,企業(yè)可以使用BCP將數(shù)據(jù)導(dǎo)入到一個倉庫中,然后在倉庫中對數(shù)據(jù)進(jìn)行處理,以幫助決策者更好地了解數(shù)據(jù)和進(jìn)行業(yè)務(wù)決策。

在使用BCP時,管理員需要注意一些要點。BCP需要一定的命令行基礎(chǔ)知識,因此管理員需要花費時間來學(xué)習(xí)基本的命令行用法。由于BCP是基于文件和表的,因此管理員需要正確地配置BCP格式文件,以確保導(dǎo)入和導(dǎo)出的數(shù)據(jù)格式正確。管理員還需要考慮數(shù)據(jù)的安全性和敏感性,需要為數(shù)據(jù)的保護和安全性制定適當(dāng)?shù)拇胧?/p>

總而言之,BCP是一個非常有用的工具,可以幫助企業(yè)有效地管理大規(guī)模的數(shù)據(jù)庫操作,以支持業(yè)務(wù)決策和管理業(yè)務(wù)信息。當(dāng)管理員正確地配置和使用BCP時,就可以通過它提高數(shù)據(jù)的質(zhì)量、效率和可靠性,從而得到更好的業(yè)務(wù)結(jié)果。

相關(guān)問題拓展閱讀:

  • 在cmd中使用bcp 工具導(dǎo)出數(shù)據(jù)的問題

在cmd中使用bcp 工具導(dǎo)出數(shù)據(jù)的問題

BCP是SQL Server中負(fù)責(zé)導(dǎo)入導(dǎo)出數(shù)據(jù)的一個命令行工具,它是基于DB-Library的,并且能以并行的方式高效地導(dǎo)入導(dǎo)出大批量的數(shù)據(jù)。BCP可以將數(shù)據(jù)庫的表或視圖直接導(dǎo)出,也能通過SELECT FROM語句對表或視圖進(jìn)行過濾后導(dǎo)出。在導(dǎo)入導(dǎo)出數(shù)據(jù)時,可以使用默認(rèn)值或是使用一個格式文件將文件中的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫或?qū)?shù)據(jù)庫中的數(shù)據(jù)導(dǎo)出到文件中。

下面將詳細(xì)討論如何利用BCP導(dǎo)入導(dǎo)出數(shù)據(jù)。

1. BCP的主要參數(shù)介紹

BCP共有四個動作可以選擇。

(1) 導(dǎo)入。

這個動作使用in命令完成,后面跟需要導(dǎo)入的文件名。

(2) 導(dǎo)出。

這個動作使用out命令完成,后面跟需要導(dǎo)出的文件名。

(3) 使用SQL語句導(dǎo)出。

這個動作使用queryout命令完租敗成,它跟out類似,只是數(shù)據(jù)源不是表或視圖名,而是SQL語句。

(4) 導(dǎo)出格式文件。

這個動作使用format命令完成,后而跟格式文件名。

下面介猛鎮(zhèn)紹一些常用的選項:

-f format_file

format_file表示格式文件名。這個選項依賴于上述的動作,如果使用的是in或out,format_file表示已經(jīng)存在的格式文件,如果使用的是format則表示是要生成的格式文件。

-x

這個選項要和-f format_file配合使用,以便生成xml格式的格式文件。

-F first_row

指定從被導(dǎo)出表的哪一行導(dǎo)出,或從被導(dǎo)入文件的哪一行導(dǎo)入。

-L last_row

指定被導(dǎo)出表要導(dǎo)到哪一行結(jié)束,或從被導(dǎo)入文件導(dǎo)數(shù)據(jù)時,導(dǎo)到哪一行結(jié)束。

-c

使用char類型做為存儲類型,沒有前綴且以”t”做為字段分割符,以”n”做為行分割符。

-w

和-c類似,只是當(dāng)使用Unicode字符集拷貝數(shù)據(jù)時使用,且以nchar做為存儲類型。

-t field_term

指定字符分割符,默認(rèn)是”t”。

-r row_term

指定行分割符,默認(rèn)是”n”。

-S server_name

指定要連接的SQL Server服務(wù)器的實例,如果未指定此選項,BCP連接本機的SQL Server默認(rèn)實例。如果要連接某臺機器上的默認(rèn)實例,只需要指定機器名即可。

-U login_id

指定連接SQL Sever的用戶名。

-P password

指定連接SQL Server的用戶名密碼。

-T

指定BCP使用信任連接登錄SQL Server。如果未指定-T,必須指定-U和-P。

-k

指定空弊知顫列使用null值插入,而不是這列的默認(rèn)值。

2. 如何使用BCP導(dǎo)出數(shù)據(jù)

(1) 使用BCP導(dǎo)出整個表或視圖。

BCP AdventureWorks.sales.currency out c:currency1.txt -c -U”sa” -P”password” –使用密碼連接

BCP AdventureWorks.sales.currency out c:currency1.txt -c -T –使用信任連接

下面是上述命令執(zhí)行后的輸出結(jié)果

Starting copy…

105 rows copied.

Network packet size (bytes): 4096

Clock Time (ms.) Total : 10 Average : (10500.00 rows per sec.)

下面是currency1.txt的部分內(nèi)容

AED Emirati Dirham:00:00.000

AFA Afghani:00:00.000

… … …

… … …

ZWD Zimbabwe Dollar:00:00.000

在使用密碼登錄時需要將-U后的用戶名和-P后的密碼加上雙引號。

注:BCP除了可以在控制臺執(zhí)行外,還可以通過調(diào)用SQL Server的一個系統(tǒng)存儲過程xp_cmdshell以SQL語句的方式運行BCP。如上述之一條命令可改寫為

EXEC master..xp_cmdshell ‘BCP AdventureWorks.sales.currency out c:currency1.txt -c -U”sa” -P”password”‘

執(zhí)行xp_cmdshell后,返回信息以表的形式輸出。為了可以方便地在SQL中執(zhí)行BCP,下面的命令都使用xp_cmdshell執(zhí)行BCP命令。

(2) 對要導(dǎo)出的表進(jìn)行過濾。

BCP不僅可以接受表名或視圖名做為參數(shù),也可以接受SQL做為參數(shù)。通過SQL語句可以對要導(dǎo)出的表進(jìn)行過濾,然后導(dǎo)出過濾后的記錄。

EXEC master..xp_cmdshell ‘BCP “SELECT TOP 20 * FROM AdventureWorks.sales.currency” queryout c:currency2.txt -c -U”sa” -P”password”‘(xp表示本存儲過程是擴展的存儲過程,extend procedure,cmdshell是command shell的意思,也就是直接敲命令執(zhí)行。)

BCP還可以通過簡單地設(shè)置選項對導(dǎo)出的行進(jìn)行限制。

EXEC master..xp_cmdshell ‘BCP “SELECT TOP 20 * FROM AdventureWorks.sales.currency” queryout c:currency2.txt -F 10 -L 13 -c -U”sa” -P”password”‘

這條命令使用了兩個參數(shù)-F 10和-L 13,表示從SELECT TOP 20 * FROM AdventureWorks.sales.currency所查出來的結(jié)果中取第10條到13條記錄進(jìn)行導(dǎo)出。

3. 如何使用BCP導(dǎo)出格式文件

BCP不僅可以根據(jù)表、視圖導(dǎo)入導(dǎo)出數(shù)據(jù),還可以配合格式文件對導(dǎo)入導(dǎo)出數(shù)據(jù)進(jìn)行限制。格式文件以純文本文件形式存在,分為一般格式和xml格式。用戶可以手工編寫格式文件,也可以通過BCP命令根據(jù)表、視圖自動生成格式文件。

EXEC master..xp_cmdshell ‘BCP AdventureWorks.sales.currency format nul -f c:currency_format1.fmt -c -T’

上述命令將currency表的結(jié)構(gòu)生成了一個格式文件currency_format1.fmt,下面是這個格式文件的內(nèi)容。

9.0

1 SQLCHAR 0 6 “t” 1 CurrencyCode SQL_Latin1_General_CP1_CI_AS

2 SQLCHAR”t” 2 Name SQL_Latin1_General_CP1_CI_AS

3 SQLCHAR 0 24 “rn” 3 ModifiedDate

這個格式文件記錄了這個表的字段(共3個字段)類型、長度、字符和行分割符和字段名等信息。

BCP還可以通過-x選項生成xml格式的格式文件。

EXEC master..xp_cmdshell ‘BCP AdventureWorks.sales.currency format nul -f c:currency_format2.fmt -x -c -T’

xml格式文件所描述的內(nèi)容和普通格式文件所描述的內(nèi)容完全一樣,只是格式不同。

4. 如何使用BCP導(dǎo)入數(shù)據(jù)

BCP可以通過in命令將上面所導(dǎo)出的currency1.txt和currency2.txt再重新導(dǎo)入到數(shù)據(jù)庫中,由于currency有主鍵,因此我們將復(fù)制一個和currency的結(jié)構(gòu)完全一樣的表。

SELECT TOP 0 * INTO AdventureWorks.sales.currency1 FROM AdventureWorks.sales.currency

將數(shù)據(jù)導(dǎo)入到currency1表中

EXEC master..xp_cmdshell ‘BCP AdventureWorks.sales.currency1 in c:currency1.txt -c -T’

導(dǎo)入數(shù)據(jù)也同樣可以使用-F和-L選項來選擇導(dǎo)入數(shù)據(jù)的記錄行。

EXEC master..xp_cmdshell ‘BCP AdventureWorks.sales.currency1 in c:currency1.txt -c -F 10 -L 13 -T’

在導(dǎo)入數(shù)據(jù)時可以根據(jù)已經(jīng)存在的格式文件將滿足條件的記錄導(dǎo)入到數(shù)據(jù)庫中,不滿足則不導(dǎo)入。如上述的格式文件中的第三個字段的字符長度是24,如果某個文本文件中的相應(yīng)字段的長度超過24,則這條記錄將不被導(dǎo)入到數(shù)據(jù)庫中,其它滿足條件的記錄正常導(dǎo)入。

使用普通的格式文件

EXEC master..xp_cmdshell ‘BCP AdventureWorks.sales.currency1 in c:currency1.txt -F 10 -L 13 -c -f c:currency_format1.fmt -T’

使用xml格式的格式文件

EXEC master..xp_cmdshell ‘BCP AdventureWorks.sales.currency1 in c:currency1.txt -F 10 -L 13 -c -x -f c:currency_format2.fmt -T’

總結(jié)

BCP命令是SQL Server提供的一個快捷的數(shù)據(jù)導(dǎo)入導(dǎo)出工具。使用它不需要啟動任何圖形管理工具就能以高效的方式導(dǎo)入導(dǎo)出數(shù)據(jù)。當(dāng)然,它也可以通過xp_cmdshell在SQL語句中執(zhí)行,通過這種方式可以將其放到客戶端程序中(如delphi、c#等)運行,這也是使客戶端程序具有數(shù)據(jù)導(dǎo)入導(dǎo)出功能的方法之一。

xp_cmdshell

以操作系統(tǒng)命令行解釋器的方式執(zhí)行給定的命令字符串,并以文本行方式返回任何輸出。授予非管理用戶執(zhí)行 xp_cmdshell 的權(quán)限。

說明 在 Microsoft? Windows?或 Microsoft Windows操作系統(tǒng)中執(zhí)行 xp_cmdshell 時,將不把 xp_cmdshell 的返回代碼設(shè)置為喚醒調(diào)用的可執(zhí)行文件的進(jìn)程退出代碼。返回代碼始終為 0。

語法

xp_cmdshell {‘command_string’}

參數(shù)

‘command_string’

是在操作系統(tǒng)命令行解釋器上執(zhí)行的命令字符串。command_string 的數(shù)據(jù)類型為 varchar(255) 或 nvarchar(4000),沒有默認(rèn)值。command_string 不能包含一對以上的雙引號。如果由 command_string 引用的文件路徑或程序名稱中有空格,則需要使用一對引號。如果使用嵌入空格不方便,可考慮使用 FAT 8.3 文件名作為解決辦法。

no_output

是可選參數(shù),表示執(zhí)行給定的 command_string,但不向客戶端返回任何輸出。

返回代碼值

0(成功)或 1(失?。?

結(jié)果集

執(zhí)行下列 xp_cmdshell 語句將返回當(dāng)前目錄的目錄列表。

xp_cmdshell ‘dir *.exe’

行以 nvarchar(255) 列的形式返回。

執(zhí)行下列 xp_cmdshell 語句將返回隨后的結(jié)果集:

xp_cmdshell ‘dir *.exe’, NO_OUTPUT

下面是結(jié)果:

The command(s) completed successfully.

注釋

xp_cmdshell 以同步方式操作。在命令行解釋器命令執(zhí)行完畢之前,不會返回控制。

當(dāng)授予用戶執(zhí)行權(quán)限時,用戶能在 Microsoft Windows NT? 命令行解釋器上執(zhí)行運行 Microsoft SQL Server? 的帳戶有權(quán)執(zhí)行的任何操作系統(tǒng)命令。

默認(rèn)情況下,只有 sysadmin 固定服務(wù)器角色的成員才能執(zhí)行此擴展存儲過程。但是,也可以授予其他用戶執(zhí)行此存儲過程的權(quán)限。

當(dāng)作為 sysadmin 固定服務(wù)器角色成員的用戶喚醒調(diào)用 xp_cmdshell 時,將在運行 SQL Server 服務(wù)的安全上下文中執(zhí)行 xp_cmdshell。當(dāng)用戶不是 sysadmin 組的成員時,xp_cmdshell 將模擬使用 xp_sqlagent_proxy_account 指定的 SQL Server 代理程序的代理帳戶。如果代理帳戶不能用,則 xp_cmdshell 將失敗。這只是針對于 Microsoft? Windows NT? 4.0 和 Windows。在 Windows 9.x 上,沒有模擬,且 xp_cmdshell 始終在啟動 SQL Server 的 Windows 9.x 用戶的安全上下文下執(zhí)行。

說明 在早期版本中,獲得 xp_cmdshell 執(zhí)行權(quán)限的用戶在 MSSQLServer 服務(wù)的用戶帳戶上下文中運行命令??梢酝ㄟ^配置選項配置 SQL Server,以便對 SQL Server 無 sa 訪問權(quán)限的用戶能夠在 SQLExecutiveCmdExec Windows NT 帳戶的上下文中運行 xp_cmdshell。在 SQL Server 7.0 中,該帳戶稱為 SQLAgentCmdExec?,F(xiàn)在,不是 sysadmin 固定服務(wù)器角色成員的用戶將在該帳戶上下文中運行命令,而無需再進(jìn)行配置更改。

權(quán)限

xp_deletemail 的執(zhí)行權(quán)限默認(rèn)授予 sysadmin 固定服務(wù)器角色的成員,但可以授予其他用戶。

重要 如果為 MSSQLServer 服務(wù)選用的 Windows NT 帳戶不是本地管理員組的成員,則非 sysadmin 固定服務(wù)器角色成員的用戶將無法執(zhí)行 xp_cmdshell。

示例

A. 返回可執(zhí)行文件列表

下例顯示執(zhí)行目錄命令的 xp_cmdshell 擴展存儲過程。

EXEC master..xp_cmdshell ‘dir *.exe’

B. 使用 Windows NT net 命令

下例顯示 xp_cmdshell 在存儲過程中的使用。下例先用 net send 通知用戶 SQL Server 即將關(guān)閉,然后用 net pause 暫停服務(wù)器,最后用 net stop 關(guān)閉服務(wù)器。

CREATE PROC shutdown10

AS

EXEC xp_cmdshell ‘net send /domain:SQL_USERS ”SQL Server shutting down

inminutes. No more connections allowed.’, no_output

EXEC xp_cmdshell ‘net pause sqlserver’

WAITFOR DELAY ’00:05:00′

EXEC xp_cmdshell ‘net send /domain: SQL_USERS ”SQL Server shutting down

inminutes.’, no_output

WAITFOR DELAY ’00:04:00′

EXEC xp_cmdshell ‘net send /domain:SQL_USERS ”SQL Server shutting down

inminute. Log off now.’, no_output

WAITFOR DELAY ’00:01:00′

EXEC xp_cmdshell ‘net stop sqlserver’, no_output

C. 不返回輸出

下例使用 xp_cmdshell 執(zhí)行命令字符串,且不向客戶端返回輸出。

USE master

EXEC xp_cmdshell ‘copy c:\sqldumps\pubs.dmp \\server2\backups\sqldumps’,

NO_OUTPUT

D. 使用返回狀態(tài)

在下例中,xp_cmdshell 擴展存儲過程也給出了返回狀態(tài)。返回代碼值存儲在變量 @result 中。

DECLARE @result int

EXEC @result = xp_cmdshell ‘dir *.exe’

IF (@result = 0)

PRINT ‘Success’

ELSE

PRINT ‘Failure’

E. 將變量內(nèi)容寫入文件

下例將當(dāng)前目錄內(nèi)容寫入當(dāng)前服務(wù)器目錄下名為 dir_out.txt 的文件中。

DECLARE @cmd sysname, @var sysname

SET @var = ‘dir /p’

SET @cmd = ‘echo ‘ + @var + ‘ > dir_out.txt’

EXEC master..xp_cmdshell @cmd

例如:

1、寫成存儲過程,建立作業(yè)定時備份~~~

–在sql中映射一下就可以了

exec master..xp_cmdshell ‘net use z: \\yizhi\D$ “密碼” /user:yizhi\administrator’

–備份;with init覆蓋|noinit添加

backup database 庫名 to disk=’E:\H_BACKUP.bak’ with init

–COPY

exec master..xp_cmdshell ‘copy E:\H_BACKUP.bak z:’

–刪除(這句可以去掉)

–exec master..xp_cmdshell ‘del E:\H_BACKUP.bak’

–完成后刪除映射

exec master..xp_cmdshell ‘net use z: /delete’

2、操作DOC下的查詢SQL語句,也就是osql的用法

用法: osql

禁用命令,>

批處理

自動調(diào)整控制臺寬度

寬消息

默認(rèn)錯誤級別為和 1

exec master..xp_cmdshell ‘osql -U sa -P-S (Local) -i E:\Study\SQL\Data\SqlText\cmdshellTest.sql’

關(guān)于bcp數(shù)據(jù)庫批量處理的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。


分享題目:BCP數(shù)據(jù)庫批量處理:高效管理數(shù)據(jù)大規(guī)模操作(bcp數(shù)據(jù)庫批量處理)
本文URL:http://www.dlmjj.cn/article/cdphjis.html