sqlserver批量導入
1. 怎麼在sqlserver里導入*.sql文件 可以批量同時導入嗎謝謝。
打開要修改的資料庫,直接拖過去,完後挨個執行……
每一個*.sql文件你可以理解為需要執行的命令。用資料庫管理器打開他們,完後再執行就好了。
2. SQL資料庫批量添加數據
1、創建測試表,create table test_batch(id number, v_date date);
3. SQL Server數據如何批量導入
如果你從事與資料庫相關的工作,有可能會涉及到將數據從外部數據文件插入倒SQL Server的操作。本文將為大家演示如何利用BULK INSERT命令來導入數據,並講解怎樣通過改變該命令的一些選項以便更方便且更有效地插入數據。 BULK INSERT 在SQL Server中,BULK INSERT是用來將外部文件以一種特定的格式載入到資料庫表的T-SQL命令。該命令使開發人員能夠直接將數據載入到資料庫表中,而不需要使用類似於Integration Services這樣的外部程序。雖然BULK INSERT不允許包含任何復雜的邏輯或轉換,但能夠提供與格式化相關的選項,並告訴我們導入是如何實現的。BULK INSERT有一個使用限制,就是只能將數據導入SQL Server。 插入數據 下面的例子能讓我們更好的理解如何使用BULK INSERT命令。首先,我們來創建一個名為Sales的表,我們將要把來自文本文件的數據插入到這個表中。 CREATE TABLE [dbo].[Sales]([SaleID] [int], [Proct] [varchar](10) NULL, [SaleDate] [datetime] NULL, [SalePrice] [money] NULL ) 當我們使用BULK INSERT命令來插入數據時,不要啟動目標表中的觸發器,因為觸發器會減緩數據導入的進程。 在下一個例子中,我們將在Sales表上創建觸發器,用來列印插入到表中的記錄的數量。 CREATE TRIGGER tr_SalesON SalesFOR INSERTASBEGINPRINT CAST(@@ROWCOUNT AS VARCHAR(5)) + ' rows Inserted.' END 這里我們選擇文本文件作為源數據文件,文本文件中的值通過逗號分割開。該文件包含1000條記錄,而且其欄位和Sales表的欄位直接關聯。由於該文本文件中的值是由逗號分割開的,我們只需要指定FIELDTERMINATOR即可。注意,當下面這條語句運行時,我們剛剛創建的觸發器並沒有啟動: BULK INSERT Sales FROM 'c:SalesText.txt' WITH (FIELDTERMINATOR = ',') 當我們要的數據量非常大時,有時候就需要啟動觸發器。下面的腳本使用了FIRE_TRIGGERS選項來指明在目標表上的任何觸發器都應當啟動: BULK INSERT Sales FROM 'c:SalesText.txt' WITH (FIELDTERMINATOR = ',', FIRE_TRIGGERS) 我們可以使用BATCHSIZE指令來設置在單個事務中可以插入到表中的記錄的數量。在前一個例子中,所有的1000條記錄都在同一個事務中被插入到目標表裡。下面的例子,我們將BATCHSIZE參數設置為2,也就是說要對該表執行500次獨立的插入事務。這也意味著啟動500次觸發器,所以將有500咯列印指令輸出到屏幕上。 BULK INSERT Sales FROM 'c:SalesText.txt' WITH (FIELDTERMINATOR = ',', FIRE_TRIGGERS, BATCHSIZE = 2) BULK INSERT不僅僅可以應用於SQL Server 2005的本地映射驅動器。下面的語句將告訴我們如何從名為FileServer的伺服器的D盤中將SalesText文件的數據導入。 BULK INSERT Sales FROM 'FileServerD$SalesText.txt' WITH (FIELDTERMINATOR = ',') 有時候,我們在執行導入操作以前,最好能先查看一下將要輸入的數據。下面的語句在使用BULK命令時,使用了OPENROWSET函數,以便從SalesText文本文件中讀取源數據。 SELECT *
4. 如何對sql server資料庫中某一個表批量導入excel數據
在資料庫上右擊,→
所有任務→導入數據→下一步→★此處是數據源
即你的excel表.在下拉框中選擇你的excel版本,在下面選擇excel文件路徑.點擊下一步
→
☆此處是目的
即你要導入的伺服器,
資料庫,和登陸方式.
→下一步(根據實際情況選擇)→選擇你要導入的sheet名→下一步→
完成
就ok
了
5. c#怎樣向sqlserver批量插入數據
C#和MS SQL交互使用的技術叫做 ADO.NET。 使用ADO.NET可以方便的對SQL SERVER 進行操作。
(如果你對ADO.NET不了解,建議先MSDN一下)
批量插入數據,有兩種方式,
1,數據比較復雜但是量不是很大,(這個大小的概念要視你的硬體、網路而定,一般在100萬條以上才叫大)。
使用FOR循環進行插入, 即聲明連接(conn.Open)然後進行遍歷,
一條一條插入資料庫(執行Insert語句),
一般來說,100W條數據,如果插入本機資料庫的話, 耗時一般在40S-1分鍾左右,
也可以在SqlServer中創建一個存儲過程來執行Insert命令, 遍歷時只需要調用存儲過程即可, 存儲過程的執行效率比Sql語句要高很多,因為不需要每次都編譯。
100W條數據用存儲過程來執行的話,一般耗時在20S左右,。
2數據量巨大,但是類型較簡單,(一般指上百萬條數據)
使用ADO.NET提供的BulkCopy,即批量導入,
語法:
publicstaticvoidBulkToDB(DataTabledt,stringTableName)
{
SqlConnectionsqlConn=newSqlConnection(
ConfigurationManager.ConnectionStrings["dbconnstr"].ConnectionString);
SqlBulkCopybulkCopy=newSqlBulkCopy(sqlConn);
bulkCopy.BulkCopyTimeout=600;
bulkCopy.DestinationTableName=TableName;
bulkCopy.BatchSize=dt.Rows.Count;
try
{
sqlConn.Open();
if(dt!=null&&dt.Rows.Count!=0)
bulkCopy.WriteToServer(dt);
}
catch(Exceptionex)
{
throwex;
}
finally
{
sqlConn.Close();
if(bulkCopy!=null)
bulkCopy.Close();
}
}
需要傳入一個DataTable,一個表名。
這種方式速度非常快,同樣100W條數據,本機導入,大概3-5秒就可以完成,
但是需要注意,傳入的DataTable必須和Sql Server中的表結構一模一樣,
比如你的表有3列,分別是Name, Age, Sex。 你傳入的DataTable也必須是如此,所以這種方式只適合導入一些基礎數據, 並不適合作為數據層的常用方法。
如果數據量巨大又要求很高的效率,更建議使用NoSql資料庫
6. 達蒙七批量導入SQL文件
打開SQLServer客戶端連接要操作的資料庫引擎右鍵要操作的資料庫,選擇任務--導入數據,點下一步,一般要導入的數據都是excel,數據源我們選擇MicrosofyExcel,瀏覽選擇要導入的excel文件,下一步選擇目標數據源選擇我們的SQLServer,根據需要一直點下一步,需要注意在選擇表和數據源頁面,根據實際需要選擇對應的表,以及編輯列的映射,最後點擊完成,導入數據。
也可以調用寫好的sql語句或存儲過程來循環的插入數據導資料庫,根據需要可以在讀取文件數據後,對數據進行校驗和加工。
7. 請教如何將excle上面的數據批量導入至sql2008資料庫
在查詢分析器里,直接寫 SQL語句:
如果是導入數據到現有表,則採用形式
INSERT INTO 表 SELECT * FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
如果是導入數據並新增表,則採用形式
SELECT * INTO 表 FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
SQL2005中直接可以實現導入功能 SQL2008不知道可不可以。 操作過程如下:
第一步:登錄到 SQL Server Management Studio
第二步:在 「對象資源管理器 」中右鍵單擊 「管理 」,在彈出列表中單擊 「導入數據 」
第三步:在 「導入向導 」對話框中單擊 「下一步 」,進入到 「選擇數據源 」對話框,在 「數據源 」列表中選擇 「Microsoft Excel 」,同時選擇相應的 Excel 文檔,完成後單擊 「下一步 」(一定要勾選該對話框中的 「首行包含列名稱 」,因此它是將 Excel文檔中的列標題為資料庫表中的列項標題)
第四步:指定目標資料庫服務,依次單擊 「下一步 」。。。。至到 「完成 」
第五步:重新打到 SQL Server Management Studio,進入到導入的資料庫表,可以發現所導入的 Excel文檔數據。
8. 如何高效地批量導入數據到SqlServer
SqlBulkCopy是個不錯的選擇,直接由DataTable可以導入到資料庫,但要注意(1)列名與目標表一致(2)數據類型一致(3)空值容錯處理,參考代碼:///<summary///將<see cref="DataTable"/
的數據批量插入到資料庫中。///</summary///<param name="dataTable"
要批量插入的
<see cref="DataTable"/。
</param///<param name="batchSize"
每批次寫入的數據量。
</(DataTable dataTable,
stringtableName,
intbatchSize =10000){using(SqlConnection connection =newSqlConnection(myConnectionString)){try{connection.Open();//給表名加上前後導符using(varbulk =newSqlBulkCopy(connection, SqlBulkCopyOptions.KeepIdentity,
null){DestinationTableName=tableName,
BatchSize=batchSize}){//循環所有列,為bulk添加映射//dataTable.EachColumn(c = bulk.ColumnMappings.Add(c.ColumnName, c.ColumnName), c = !c.AutoIncrement);foreach(DataColumn dcindataTable.Columns){bulk.ColumnMappings.Add(dc.ColumnName, dc.ColumnName);}bulk.WriteToServer(dataTable);
bulk.Close();}returntrue;}catch(Exception exp){returnfalse;}finally{connection.Close();}}}
如果是數據量非常大,超過10W以上的數據,可以考慮生成.dtsx文件,然後由C#代碼直接調用,效率還是不錯的。
9. SQLSERVER資料庫中批量導入數據的幾種方法
我們通過SQL腳本來插入數據,常見如下四種方式。
方式一:一條一條插入,性能最差,不建議使用。
INSERT INTO Proct(Id,Name,Price) VALUES(newid(),'牛欄1段',160);INSERT INTO Proct(Id,Name,Price) VALUES(newid(),'牛欄2段',260);
......
方式二:insert bulk
語法如下:
方式四:拼接SQL
INSERT INTO Proct(Id,Name,Price) VALUES(newid(),'牛欄1段',160)
,(newid(),'牛欄2段',260)
......
10. SQL server代理如何批量導入作業
SQL
Server
Management
Studio
沒有提供作業備份和還原的功能,但是並不是不能實現批量導入,具體步驟如下:
1:打開作業目錄,在你需要導入的作業上右鍵-->編寫作業腳本為
然後隨便選一個,生成作業腳本
2:在需要導入的資料庫伺服器上執行該腳本即可