SQL Server 資料匯入匯出
有時資料因部門不同等需求,要在不同的程式上運行
這時就需要將SQL Server中的資料轉成其他格式匯出
微軟提供了可以轉給oracle、excel等等
當然最後還有轉成文字檔輸出,如此一來全世界的系統都看得懂
使用上非常簡單,點選他就會有「匯入匯出精靈」跳出
三個重點:從那裡? 匯什麼? 到那裡?
跟著精靈的指示操作,超級簡單,我就不贅敘了
不過,用精靈操作有點不太專業
講白話點就是會按右鍵的就會匯出入操作
像我這種的專業人士就要懂如何運用指令啦
這個指令是在Dos介面下才能運作,用SQL Server沒辦法執行:
bcp還有2個有趣的指令,若想將某個查詢結果匯出來:
bcp第2個指令是如果匯出及匯入的程式都是SQL Server
那可以下-n指令,意思是原生狀態,不過有個前題
要匯入的資料表是並不存在的,所以必需先在該資料庫中建一與來源資料相同的Table:
這是只有在DOS下才可以執行指令,那在SQL Server中對應指令是
BULK INSERT,這只有在匯入才有用,沒有匯出
可以把它想像成SQL Server版的bcp指令
這時就需要將SQL Server中的資料轉成其他格式匯出
微軟提供了可以轉給oracle、excel等等
當然最後還有轉成文字檔輸出,如此一來全世界的系統都看得懂
三個重點:從那裡? 匯什麼? 到那裡?
跟著精靈的指示操作,超級簡單,我就不贅敘了
不過,用精靈操作有點不太專業
講白話點就是會按右鍵的就會匯出入操作
這個指令是在Dos介面下才能運作,用SQL Server沒辦法執行:
C:\Users\study>bcp --使用方式: bcp {dbtable | query} {in | out | queryout | format} datafile [-m 最大錯誤數] [-f 格式檔案] [-e 錯誤檔案] [-F 第一列] [-L 最後一列] [-b 批次大小] [-n 原生類型] [-c 字元類型] [-w 寬字元類型] [-N 非文字保持不變] [-V 檔案格式版本] [-q 引號識別碼] [-C 字碼頁規範] [-t 欄位結束字元] [-r 資料列結束字元] [-i 輸入檔] [-o 輸出檔] [-a 封包大小] [-S 伺服器名稱] [-U 使用者名稱] [-P 密碼] [-T 信任連接] [-v 版本] [-R 區域啟用] [-k 保留 Null 值] [-E 保留識別值] [-h "load hints"] [-x 產生 xml 格式檔案] [-d 資料庫名稱] [-K 應用程式的意圖] C:\Users\study>bcp 中文北風.dbo.客戶 out c:\backup\客戶.txt -T -w -t, --這裡的意思:將中文北風.dbo.客戶 輸出到 c:\backup\客戶.txt\ --大寫T是信任連接,就是windows認證 --小寫w是寬字元類型,除了英文及數字,其他文都是寬字元 --小寫t是分割符號,這裡是用,號表示預設是Teb鍵 --還有-b,批次大小,預設是1000筆,不過現在電腦滿強悍的,可以用-b5000,表示每次5000筆
bcp還有2個有趣的指令,若想將某個查詢結果匯出來:
bcp "SELECT 產品編號,品名,價錢 FROM 練練.dbo.巨巨 WHERE 價錢>50" queryout C:\backup\大於50的產品.txt -T -w -t,
bcp第2個指令是如果匯出及匯入的程式都是SQL Server
那可以下-n指令,意思是原生狀態,不過有個前題
要匯入的資料表是並不存在的,所以必需先在該資料庫中建一與來源資料相同的Table:
--先建一個空表 select * into 新新.dbo.客戶 from 中文北風.dbo.客戶 where 1<0 --匯出資料,不用在意副檔名 bcp 中文北風.dbo.客戶 out c:\backup\客戶.zzz -T -n --匯入資料,不用在意副檔名,前題要先有個空表 bcp 新新.dbo.客戶 in c:\backup\客戶.zzz -T -n
這是只有在DOS下才可以執行指令,那在SQL Server中對應指令是
BULK INSERT,這只有在匯入才有用,沒有匯出
可以把它想像成SQL Server版的bcp指令
BULK INSERT 新新.dbo.客戶 FROM 'c:\BackBack\北風客戶.txt' WITH ( DATAFILETYPE='widechar', --寬字元 FIELDTERMINATOR=',' --以逗號區隔 ) BULK INSERT 新新.dbo.歷史資料 FROM 'C:\BackBack\歷史交易資料(原).abc' WITH ( DATAFILETYPE='native', --原生狀態 BATCHSIZE=5000 --每5000一批次 )
留言
張貼留言