當前位置:首頁 » 編程語言 » sqlserver批量

sqlserver批量

發布時間: 2022-09-07 15:34:21

『壹』 如何高效地批量導入數據到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#代碼直接調用,效率還是不錯的。

『貳』 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)
......

『叄』 sqlserver 差異備份,如何批量還原

批量還原代碼如下:

Use master
GO
/*=================Usp_RestoreMuiteDataBaseFromPath========================
=====Restore Mutite DataBase File From a Path ======
=====Ken.Guo ======
=====2010.9.10 ======
=====Version: 2005 & 2008 SQL Server ======
=====EXEC Usp_RestoreMuiteDataBaseFromPath 'D:\databack','',0 ======
=========================================================================
*/
CREATE PROC Usp_RestoreMuiteDataBaseFromPath
( @DatabBaseBakPath nvarchar(400)
,@RestoreDataPath nvarchar(400)='' --RESTORE DATABASE PATH
,@IsRun smallint=0 -- 0 PRINT 1 run
)
AS
BEGIN
set nocount on
DECLARE @BackUpFileName nvarchar(200)
,@DbName nvarchar(200)
,@errorinfo nvarchar(400)

IF not exists(SELECT 1
FROM master.sys.proceres WITH(NOLOCK)
WHERE
name=N'Usp_RestoreDataBaseFormPath'

)
begin
Raiserror 50001 N'找不到存儲過程SP_RestoreDataBaseFormPath '
Goto ExitFLag
end

--add path \
if (@DatabBaseBakPath is not null) and len(@DatabBaseBakPath)>1
and (right(@DatabBaseBakPath,1)<>'\')
set @DatabBaseBakPath=@DatabBaseBakPath+'\'

--Check Restore Path and Size >1000M
DECLARE @checkdrive int
SET @checkdrive=1
EXEC master.dbo.Usp_Check_DriveExists @RestoreDataPath,@checkdrive OUTPUT

IF(@checkdrive<>1)
Goto ExitFLag

DECLARE @Dir TABLE
(
BackDBFileName nvarchar(100)
,DEPTH int
,[File] int
)

INSERT INTO @Dir EXEC xp_dirtree @DatabBaseBakPath
,1
,1

DELETE FROM @Dir
WHERE charindex('.bak',BackDBFileName)=0

if not exists (select top 1 1 from @Dir)
begin
Raiserror 50001 N'在提供的路徑下沒有找到合符要求的備份文件'
Goto ExitFLag
end

declare db_file Cursor Local Static Read_Only Forward_Only
for
select BackDBFileName from @Dir

Open db_file
Fetch Next from db_file into @BackUpFileName
while @@FETCH_STATUS=0
begin
--Restore DataBase
set @BackUpFileName=@DatabBaseBakPath+@BackUpFileName
exec master.dbo.Usp_RestoreDataBaseFormPath @BackUpFileName,@RestoreDataPath,@IsRun
Fetch Next from db_file into @BackUpFileName
end
Close db_file
deallocate db_file

ExitFLag:
set nocount off
end

『肆』 sqlserver批量插入多條數據怎麼返回自增編號

SELECTIDENT_CURRENT('TableName')--返回當前的最後自動編號SELECTIDENT_INCR('TableName')--返回增量值SELECTIDENT_SEED('TableName')--返回種子值返回下一個自動編號:SELECTIDENT_CURRENT('TableName')+(SELECTIDENT_INCR('TableName'))--創建資料庫和表(idintidentity(1,1),namevarchar(20))--執行這個SQL,就能查出來剛插入記錄對應的自增列的值insertintomytablevalues('李四')select@@identitydeclare@new_idintinsertintotest_idvalues('haha')

『伍』 SQLSERVER 批量導入EXCEL文件數據

SQL批量導入exe文件數據的話,直接從批量導入就好了。

『陸』 如何對sqlserver資料庫表內數據批量處理(C#)

告訴你個思路,你先按常規方法把數據查詢出來,放在model裡面,然後取值取到d列時,用b*c,記得轉換下類型,還有Model裡面的d也設為Int類型的,如果說你資料庫里的b,c,d都是Int
類型的,那就再好不過了。不會的再問我

『柒』 sqlserver怎麼批量刪除大量數據

刪除大量數據速度是正常的。
如果表裡面數據都不要了,可以直接truncate
如果表裡面數據只有一小部分要得,可以把小的備份出來,然後truncate表,然後再把備份的數據導回來
如果只是刪除表中部分數據,可以寫成循環小批量刪除腳本;如果伺服器性能好,百萬數據刪除還是很快的

『捌』 提高Sqlserver大批量插入數據速度的幾點方法

這個可以藉助系統表,一次插入多條的方式,來達到減少插入的次數,來達到大批量插入數據的方法。

『玖』 sqlserver中如何批量修改一個表的數據

如果想把"SQL"表的前綴"ABC_"改為"DEF"

先用SQL語句查詢所有"ABC_"前綴的表

select * from sysobjects where xtype='u' and name like 'ABC_%'

然後用修改語句

『拾』 sqlserver資料庫 怎麼批量導出索引

sqlserver資料庫 怎麼批量導出索引
索引是建立在表的基礎上的。所以SQL Server 2008沒有提供只導出索引腳本的選項。
可以在導出向導中將選項"生成索引腳本(Script Indexes)"設置為True,然後在對象類型中只選擇「表(Tables)".這樣導出的腳本中就包含了索引的腳本,當然也包括表的腳本。如果不需要表的腳本,手工把它們刪掉或者注釋掉即可。

熱點內容
源碼輸出電視盒 發布:2025-01-13 14:16:54 瀏覽:172
D演算法求矩陣 發布:2025-01-13 14:16:20 瀏覽:136
商城前端源碼 發布:2025-01-13 14:08:43 瀏覽:48
每個人身上都有密碼是什麼 發布:2025-01-13 14:08:40 瀏覽:472
怎麼看java 發布:2025-01-13 13:54:18 瀏覽:10
沒腳本導演 發布:2025-01-13 13:52:22 瀏覽:339
獲取android簽名 發布:2025-01-13 13:40:21 瀏覽:595
單片機編譯器和驅動 發布:2025-01-13 13:31:33 瀏覽:440
tis伺服器怎麼進pe 發布:2025-01-13 13:31:02 瀏覽:277
android線程與線程通信 發布:2025-01-13 13:30:27 瀏覽:39