當前位置:首頁 » 編程語言 » sql中向表批量插入數據
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql中向表批量插入數據

發布時間: 2023-05-23 09:52:33

資料庫中我想要批量插入數據sql語句怎麼寫。

批量插入不要用循環,直接sql語句就可以了:
insert
into
table
(`field`,
`field2`)
values
('val',
'val2'),
('v2',
'v3');
這樣就可以了,上面的sql批量了2條,以此類推,中間隔半形逗號即可。
我就暈了,你不會用程序處理啊,用一個array_map然後implode不久可以了嗎?

Ⅱ plsql怎麼往表裡插入多條數據

1、採用insert into values 語句插入一條,寫很多條語句即可多條數據,這種主要針對於離散值以及一些基礎信息的錄入,如:insert into test(xh,mc) values('123','測試');
如果插入的數據有規律,可利用for、loop循環插入,主要用於批量生成測試數據
begin
for i in 1 .. 100 loop
insert into test(xh,mc) values(i||'','測試');
end loop;
end ;。
2、採用insert into selct from 語句來一次性插入一個集合,這種主要依據於要插入的數據源已經存儲於資料庫對象中,或者利用al虛表來構造數據,經過加工後寫入一個集合。
insert into test (xh,mx) select '123','測試' from al;
3、採用plsql等工具、或者oracle的imp、impdp命令來導入,這種主要用資料庫與資料庫之間的大批量數據導入,導入的數據格式為plsql的pde、oracle的dmp等。dmp文件可使用
table_exists_action參數控制導入動作:replace替換原表,truncate清除原表數據再導入,append增量導入數據,當然impdp數據泵的導入要依賴於directory路徑。
impdp 用戶名/密碼 mpfile=123.dmp logfile=123.log directory=imp_dir tables=test table_exists_action=append
4、使用excel文件直接拷貝。這種主要用於要寫入的數據已是excel文件或者行列分明的其它格式文件,每一列的值和表結構相對應,可直接打開表的行級鎖,把數據拷貝進入。
打開行級鎖方法:
select t.*,rowid from 表名 t where 1=2;
select * from 表名 where 1=2 for update;
直接把excel數據拷貝到表裡

Ⅲ 怎樣用SQL向資料庫中批量的插入數據,主鍵是隨機生成的

代碼如下:
--創建測試表
CREATE TABLE [Identity](
Id INT IDENTITY(1,2) NOT NULL PRIMARY KEY,--種子的起始值1,步長2
Number VARCHAR(20) UNIQUE NOT NULL,
Name VARCHAR(20) NOT NULL,
Password VARCHAR(20) DEFAULT(123),
Description VARCHAR(40) NULL
)
--插入記錄
INSERT INTO [Identity](Number,Name,Description) VALUES('001','1st','Id=1,因為起始值1')
INSERT INTO [Identity](Number,Name,Description) VALUES('002','2nd','Id=3,因為起始值1,步長2')
INSERT INTO [Identity](Number,Name,Description) VALUES('003','3rd','Id=5,由於字元長度超長,報錯插入失敗,造成此Id產生後被放棄')
INSERT INTO [Identity](Number,Name,Description) VALUES('004','4th','Id=7 not 5,因為第三條記錄插入失敗')
--檢索記錄,查看結果
SELECT * FROM [Identity]

Ⅳ 如何在SQL SERVER中批量添加數據

sql不支持批量添加數據,不過可以復制別的表的數據到新表,具體用法
select * into 新表 from 原表
要什麼數據就把*改成什麼就可以了,不改就是復制整張表,不過復制只會復制數據,不會復製表的結構

Ⅳ 如何用SQL語句將數據批量插入資料庫

這種情況使用xml來進行批量插入.
1.asp.net頁面上抓取數據,轉換成xml字元串
2.將這個字元串作為參數傳給存儲過程
3.存儲過程里,將這個xml讀取成臨時表
4.整個臨時表插入到目標數據表中,這個過程可以使用sql
server的事務;其實在這里用不用事務問題都不大了,因為存儲過程出錯,數據插不進去的,還會拋出異常到asp.net後台,讓後台進行處理異常.
您用游標或asp.net代碼來循環,速度會比較慢的.

Ⅵ sql 從A表中查詢數據批量 插入B表中,如何設置批量處理

這個需要看你表結構
目測,你pd.OrderNO字賀賀返段是主鍵嗎?
如果是的話,你禪飢可以在你語句里限制一下
比如
insert GS_ProctTime
select pd.OrderNO,'pl22' plantcode,'機作' plantname,pd.pdProctCode,pd.pdName,'' ttype, sum(isnull(sumptTimeB,0)) t1,sum(isnull(pcTimeCxJ,0))*1.00 t2,0.00 t3,0.00 t4
from dbo.GS_pd_Procts pd
join V_GS_ProcessTime t on pd.orderno=ptProctCode and t.ptPlantCode='pl22'
where pd.OrderNO<=1000
group by pd.OrderNO,pd.pdProctCode,pd.pdName
如果再執行
insert GS_ProctTime
select pd.OrderNO,'pl22' plantcode,'機作'拍空 plantname,pd.pdProctCode,pd.pdName,'' ttype, sum(isnull(sumptTimeB,0)) t1,sum(isnull(pcTimeCxJ,0))*1.00 t2,0.00 t3,0.00 t4
from dbo.GS_pd_Procts pd
join V_GS_ProcessTime t on pd.orderno=ptProctCode and t.ptPlantCode='pl22'
where pd.OrderNO between 1001 and 2000
group by pd.OrderNO,pd.pdProctCode,pd.pdName

Ⅶ 怎麼樣快速向SQL資料庫插入大數據量的數據

添加數據需要知道往哪張表添加,以及自己要添加的內容,然後可用insert語句執行。

1、以sqlserver2008r2為例,登錄SQL Server Management Studio到指定的資料庫。

2、登錄後點擊「新建查詢」。

Ⅷ 怎樣向SQL Server中大批量插入數據

一次性插入大量數據,只能使用循環,
如:游標,while 循環語句
下面介紹While 循環插入數據,
SQL 代碼如下:
IF OBJECT_ID('dbo.Nums') IS NOT NULL
DROP TABLE dbo.Nums;
GO
CREATE TABLE dbo.Nums(n INT NOT NULL PRIMARY KEY);
DECLARE @max AS INT, @rc AS INT;
SET @max = 5000000;
SET @rc = 1;
INSERT INTO Nums VALUES(1);
WHILE @rc * 2 <= @max
BEGIN
INSERT INTO dbo.Nums SELECT n + @rc FROM dbo.Nums;
SET @rc = @rc * 2;
END
INSERT INTO dbo.Nums SELECT n + @rc FROM dbo.Nums WHERE n + @rc <= @max;
--以上函數取自Inside SQL Server 2005: T-SQL Query一書。
INSERT dbo.Sample SELECT n, RAND(CAST(NEWID() AS BINARY(16))) FROM Nums

Ⅸ SQL批量插入數據

一、針對批量插入數據,如果量不是太多,可以多條SQL語句運行就可以了,

類似下面的語句,當然可以使用excel 編輯後,復制到查詢器中運行,

insert into table(a,b) values('1','a')

insert into table(a,b) values('2','b')

insert into table(a,b) values('3','c')


二、大量數批量插入,即數據表的移植,數據備份轉換之類的,就需要工具,比如MSSQL的DTS工具,pb的數據通道 等等。這里介紹一下 DTS工具。

Ⅹ 如何在SQL Server中批量導入數據

方案一、循環導入

實現方式是利用資料庫訪問類調用存儲過程,利用循環逐條插入。很明顯,這種方式效率並不高

方案二、使用Bulk插入

bulk方法主要思想是通過在客戶端把數據都緩存在Table中,然後利用SqlBulkCopy一次性把Table中的數據插入到資料庫,效率非常高

方案三:

利用SQLServer2008的新特性--表值參數(Table-Valued Parameter)。表值參數是SQLServer2008才有的一個新特性,使用這個新特性,我們可以把一個表類型作為參數傳遞到函數或存儲過程里。

方案四:

對於單列欄位,可以把要插入的數據進行字元串拼接,最後再在存儲過程中拆分成數組,然後逐條插入。查了一下存儲過程中參數的字元串的最大長度,然後除以欄位的長度,算出一個值,很明顯是可以滿足要求的,只是這種方式跟第一種方式比起來,似乎沒什麼提高,因為原理都是一樣的。

方案五:

考慮非同步創建、消息隊列等等。這種方案無論從設計上還是開發上,難度都是有的。