久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

SQLServer中怎么導入導出數據

131次閱讀
沒有評論

共計 3403 個字符,預計需要花費 9 分鐘才能閱讀完成。

SQLServer 中怎么導入導出數據,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

1. SQL Server 導入導出向導, 這種方式是最方便的. 導入向導, 微軟提供了多種數據源驅動, 包括 SQL Server Native Cliant, OLE DB For Oracle,Flat File Source,Access,Excel,XML 等, 基本上可以滿足系統開發的需求. 同樣導出向導也有同樣多的目的源驅動, 可以把數據導入到不同的目的源. 對數據庫管理人員來說這種方式簡單容易操作, 導入時 SQL Server 也會幫你建立相同結構的 Table. 2. 用.NET 的代碼實現 (比如有一個 txt 或是 excel 的檔案, 到讀取到 DB 中) 2.1 最為常見的就是循環讀取 txt 的內容, 然后一條一條的塞入到 Table 中. 這里不再贅述. 2.2 集合整體讀取, 使用 OLEDB 驅動. 代碼如下: 復制代碼 代碼如下:
string strOLEDBConnect = @ Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\1\;Extended Properties= text;HDR=Yes;FMT=Delimited OleDbConnection conn = new OleDbConnection(strOLEDBConnect); conn.Open(); SQLstmt = select * from 1.txt // 讀取.txt 中的數據 DataTable dt=new DataTable(); OleDbDataAdapter da = new OleDbDataAdapter(SQLstmt, conn); da.Fill(dt);// 在 DataSet 的指定范圍中添加或刷新行以匹配使用 DataSet、DataTable 和 IDataReader 名稱的數據源中的行。if(dt.Rows.Count 0) foreach(DataRow dr in dt.Rows) {SQLstmt = insert into MyTable values( + dr…

3.BCP, 可以用作大容量的數據導入導出, 也可以配合 xp_cmdshell 來使用. 語法: BCP 語法復制代碼 代碼如下:
bcp {[[database_name.][schema].]{table_name | view_name} | query } {in | out | queryout | format} data_file [-mmax_errors] [-fformat_file] [-x] [-eerr_file] [-Ffirst_row] [-Llast_row] [-bbatch_size] [-ddatabase_name] [-n] [-c] [-N] [-w] [-V (70 | 80 | 90)] [-q] [-C { ACP | OEM | RAW | code_page} ] [-tfield_term] [-rrow_term] [-iinput_file] [-ooutput_file] [-apacket_size] [-S [server_name[\instance_name]]] [-Ulogin_id] [-Ppassword] [-T] [-v] [-R] [-k] [-E] [-h hint [,…n] ]

請注意數據導入導出的方向參數:in,out,queryout 如: 如: 4.BULK INSERT. T-SQL 的命令, 允許直接導入數據 語法: 復制代碼 代碼如下:
BULK INSERT [database_name. [ schema_name] . | schema_name. ] [table_name | view_name] FROM data_file [WITH ( [ [ ,] BATCHSIZE =batch_size ] [[ ,] CHECK_CONSTRAINTS ] [[ ,] CODEPAGE = {ACP | OEM | RAW | code_page} ] [[ ,] DATAFILETYPE = {char | native | widechar | widenative} ] [[ ,] FIELDTERMINATOR = field_terminator ] [[ ,] FIRSTROW = first_row ] [[ ,] FIRE_TRIGGERS ] [[ ,] FORMATFILE = format_file_path ] [[ ,] KEEPIDENTITY ] [[ ,] KEEPNULLS ] [[ ,] KILOBYTES_PER_BATCH =kilobytes_per_batch ] [[ ,] LASTROW =last_row ] [[ ,] MAXERRORS =max_errors ] [[ ,] ORDER ({ column [ ASC | DESC] } [,…n] ) ] [[ ,] ROWS_PER_BATCH =rows_per_batch ] [[ ,] ROWTERMINATOR = row_terminator ] [[ ,] TABLOCK ] [[ ,] ERRORFILE = file_name ] )]

重要參數: FIELDTERMINATOR, 字段分隔符 FIRSTROW: 第一個數據行 ROWTERMINATOR: 行終結符 如: 復制代碼 代碼如下:
BULK INSERT dbo.ImportTest FROM C:\ImportData.txt WITH (FIELDTERMINATOR = , , FIRSTROW = 2)

5. OPENROWSET 也是 T -SQL 的命令, 包含有 DB 連接的信息和其它導入方法不同的是,OPENROWSET 可以作為一個目標表參與 INSERT,UPDATE,DELETE 操作. 語法: 復制代碼 代碼如下:
OPENROWSET ({ provider_name , { datasource user_id password | provider_string} , {[ catalog.] [schema.] object | query } | BULK data_file , {FORMATFILE = format_file_path [ bulk_options] | SINGLE_BLOB | SINGLE_CLOB | SINGLE_NCLOB } } ) bulk_options ::= [, CODEPAGE = { ACP | OEM | RAW | code_page} ] [, ERRORFILE = file_name] [, FIRSTROW = first_row] [, LASTROW = last_row] [, MAXERRORS = maximum_errors] [, ROWS_PER_BATCH =rows_per_batch]

如: 復制代碼 代碼如下:
INSERT INTO dbo.ImportTest SELECT * FROM OPENROWSET(Microsoft.Jet.OLEDB.4.0 , Excel 8.0;Database=C:\ImportData.xls , SELECT * FROM [Sheet1$] WHERE A1 IS NOT NULL)

6.OPENDATASOURCE 語法: OPENDATASOURCE (provider_name,init_string) 如: 復制代碼 代碼如下:
INSERT INTO dbo.ImportTest SELECT * FROM OPENDATASOURCE(Microsoft.Jet.OLEDB.4.0 , Data Source=C:\ImportData.xls;Extended Properties=Excel 8.0)…[Sheet1$]

7.OPENQUERY. 是在 linked server 的基礎上執行的查詢. 所以執行之前必須先建立好 link server.OPENQUERY 的結果集可以作為一個 table 參與 DML 的操作. 語法: OPENQUERY (linked_server , query) 如: 復制代碼 代碼如下:
EXEC sp_addlinkedserver ImportData , Jet 4.0 , Microsoft.Jet.OLEDB.4.0 , C:\ImportData.xls , NULL, Excel 8.0 GO INSERT INTO dbo.ImportTest SELECT * FROM OPENQUERY(ImportData, SELECT * FROM [Sheet1$] )

看完上述內容,你們掌握 SQLServer 中怎么導入導出數據的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注丸趣 TV 行業資訊頻道,感謝各位的閱讀!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-03發表,共計3403字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 黔南| 桐乡市| 华阴市| 阳东县| 安庆市| 正蓝旗| 营口市| 蒙城县| 武平县| 尉氏县| 佛山市| 临安市| 汉沽区| 临邑县| 大兴区| 永州市| 通化县| 丁青县| 松原市| 五河县| 平邑县| 阳西县| 临漳县| 彭水| 恩施市| 丰城市| 阿坝县| 久治县| 新巴尔虎左旗| 卢龙县| 乌兰察布市| 宜城市| 乌鲁木齐市| 沙洋县| 武邑县| 乡城县| 恩施市| 和硕县| 若尔盖县| 大同县| 永兴县|