在日常的開發過程中,經常需要導出某個資料庫中,某些表數據;或者,需要對某個表的結構,數據進行修改的時候,就需要在資料庫中導出表的sql結構,包括該表的建表語句和數據存儲語句!在這個時候,就可以利用本方法來操作!
https://jingyan..com/article/3ea51489e672be52e61bba80.html
Ⅱ sqlserver 怎麼把數據導出
打開sqlserver2008,連接成功後,選擇需要導出表的資料庫--任務---生成腳本
顯示:生成和發布腳本窗口--簡介(某些可能關閉該頁面的,可以省略該步驟),點擊下一步
顯示:生成和發布腳本窗口--選擇對象--按照圖片操作即可
顯示:生成和發布腳本窗口--設置腳本編寫選項--按照圖片操作即可
點擊完高級以後,彈出--高級腳本編寫選項,選擇常規--要編寫的腳本的數據類型--架構和數據 (該步很重要)--選擇完點擊確定--點擊下一步
顯示:生成和發布腳本窗口--摘要--下一步--完成
Ⅲ sqlserver 中怎麼導出資料庫中的數據
在涉及到SQL Server編程或是管理時一定會用到數據的導入與導出, 導入導出的方法有多種,結合我在做項目時的經歷做一下匯總:
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,可以用作大容量的數據導入導出,也可以配合來使用.
語法:
復制代碼
代碼
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'
GOINSERT INTO dbo.ImportTest
SELECT *
FROM OPENQUERY(ImportData, 'SELECT * FROM [Sheet1$]')
Ⅳ 如何將sqlserver 上百萬行的表導出到excel
方法一:對於會寫查詢SQL語句的則是直接寫查詢語句查詢出結果。如下圖:
Ⅳ sqlserver 怎麼導出資料庫的表
打開sql
server
2008
後,選擇你要導出的資料庫
在資料庫上右擊,選擇【任務】→【生成腳本】
進入簡介頁面,直接點擊【下一步】就可以了
選擇對象頁面,可以選擇導出整個資料庫的腳本,或者其中的部分表,很靈活
進入設置腳本選項,首先把導出的路徑選擇好
防止一會兒忘記設置路徑,找不到導去哪裡了
然後點擊【高級】
在高級選項頁面,在左側找到【要編寫腳本的數據類型】,然後在右側的下拉框中選擇【架構和數據】
這一步操作千萬不要忘記了!除非你不想要數據,只要表的結構。
之後回到編寫選項的頁面,點擊【下一步】
要摘要頁面,可以做個簡單的檢查,看前面的選擇是不是您想要的
檢查無誤,點擊【下一步】,開始執行
好了,導出成功啦
Ⅵ 如何把SqlServer查詢的結果生成excel-CSDN論壇
常規的數據導入導出:
使用DTS向導遷移你的Access數據到SQL Server,你可以使用這些步驟:
○1在SQL SERVER企業管理器中的Tools(工具)菜單上,選擇Data Transformation
○2Services(數據轉換服務),然後選擇 czdImport Data(導入數據)。
○3在Choose a Data Source(選擇數據源)對話框中選擇Microsoft Access as the Source,然後鍵入你的.mdb資料庫(.mdb文件擴展名)的文件名或通過瀏覽尋找該文件。
○4在Choose a Destination(選擇目標)對話框中,選擇Microsoft OLEDB Prov ider for SQLServer,選擇資料庫伺服器,然後單擊必要的驗證方式。
○5在Specify Table Copy(指定表格復制)或Query(查詢)對話框中,單擊Copy tables(復製表格)。
○6在Select Source Tables(選擇源表格)對話框中,單擊Select All(全部選定)。下一步,完成。
Ⅶ sqlserver怎麼導出數據
1
打開SQL
Server Management Studio,在對象資源管理器中,展開「SQL Server
實例」→「資料庫」→「MySchool」節點,單擊滑鼠右鍵,選擇「任務」→「導出數據」命令。出現導入和導出向導的歡迎界面,單擊「下一步」按鈕,出現「選擇數據源」對話框,如圖
2
在「選擇數據源」對話框中設置如下選項:
數據源:SQL Native Client 10.0。
伺服器名稱:DC。
身份驗證:Windows身份驗證。
資料庫:MySchool。
單擊「下一步」按鈕,出現「選擇目標」對話框,設置如下選項(如圖所示):
目標:平面文件目標。
文件名:C:\student.txt。
格式:帶分隔符。
3
單擊「下一步」按鈕,出現「指定表復制或查詢」對話框,如圖所示。
4
在「指定表復制或查詢」對話框中選中「復制一個或多個表或視圖的數據」單選按鈕,單擊「下一步」按鈕,出現「配置平面文件目標」對話框,如圖所示。
5
設置源表或源視圖為MySchool.dbo.student,單擊「下一步」按鈕。
在「保存並執行包」對話框中選中「立即執行」復選框,如圖所示,然後單擊「下一步」按鈕。
6
在如圖所示的對話框中單擊「完成」按鈕。
7
如圖所示,當執行完後,單擊「關閉」按鈕。
8
在Windows資源管理器中打開C:\student.txt文件,驗證導出的結果。
Ⅷ sqlserver 如何將查詢結果導出到excel中
查詢完之後在結果欄里按ctrl+a將結果全選,按右鍵選擇「將結果另存為...」,然後保存為「*.csv」文件,就可以用excel打開了。或者「連同標題一起復制」,然後將結果拷貝到excel表中就可以了。