日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > 數(shù)據(jù)庫(kù) > Sqlserver > SQL從文本導(dǎo)數(shù)據(jù)到數(shù)據(jù)庫(kù)用到的BULK INSERT

SQL從文本導(dǎo)數(shù)據(jù)到數(shù)據(jù)庫(kù)用到的BULK INSERT

來(lái)源:程序員人生   發(fā)布時(shí)間:2014-04-27 21:04:46 閱讀次數(shù):3561次
  建站學(xué)院文檔 如果你從事與數(shù)據(jù)庫(kù)相關(guān)的工作,有可能會(huì)涉及到將數(shù)據(jù)從外部數(shù)據(jù)文件插入倒SQL Server的操作。本文將為大家演示如何利用BULK INSERT命令來(lái)導(dǎo)入數(shù)據(jù),并講解怎樣通過(guò)改變?cè)撁畹囊恍┻x項(xiàng)以便更方便且更有效地插入數(shù)據(jù)。

  BULK INSERT

  在SQL Server中,BULK INSERT是用來(lái)將外部文件以一種特定的格式加載到數(shù)據(jù)庫(kù)表的T-SQL命令。該命令使開(kāi)發(fā)人員能夠直接將數(shù)據(jù)加載到數(shù)據(jù)庫(kù)表中,而不需要使用類(lèi)似于Integration Services這樣的外部程序。雖然BULK INSERT不允許包含任何復(fù)雜的邏輯或轉(zhuǎn)換,但能夠提供與格式化相關(guān)的選項(xiàng),并告訴我們導(dǎo)入是如何實(shí)現(xiàn)的。BULK INSERT有一個(gè)使用限制,就是只能將數(shù)據(jù)導(dǎo)入SQL Server。

  插入數(shù)據(jù)下面的例子能讓我們更好的理解如何使用BULK INSERT命令。首先,我們來(lái)創(chuàng)建一個(gè)名為Sales的表,我們將要把來(lái)自文本文件的數(shù)據(jù)插入到這個(gè)表中。
CREATE TABLE [dbo].[Sales] 

[SaleID] [int], 
[Product] [varchar](10) NULL, 
[SaleDate] [datetime] NULL, 
[SalePrice] [money] NULL 

    當(dāng)我們使用BULK INSERT命令來(lái)插入數(shù)據(jù)時(shí),不要啟動(dòng)目標(biāo)表中的觸發(fā)器,因?yàn)橛|發(fā)器會(huì)減緩數(shù)據(jù)導(dǎo)入的進(jìn)程。

  在下一個(gè)例子中,我們將在Sales表上創(chuàng)建觸發(fā)器,用來(lái)打印插入到表中的記錄的數(shù)量。
 
CREATE TRIGGER tr_Sales 
ON Sales 
FOR INSERT 
AS 
BEGIN 
PRINT CAST(@@ROWCOUNT AS VARCHAR(5)) + ' rows Inserted.' 
END

    這里我們選擇文本文件作為源數(shù)據(jù)文件,文本文件中的值通過(guò)逗號(hào)分割開(kāi)。該文件包含1000條記錄,而且其字段和Sales表的字段直接關(guān)聯(lián)。由于該文本文件中的值是由逗號(hào)分割開(kāi)的,我們只需要指定FIELDTERMINATOR即可。注意,當(dāng)下面這條語(yǔ)句運(yùn)行時(shí),我們剛剛創(chuàng)建的觸發(fā)器并沒(méi)有啟動(dòng):
  
BULK INSERT Sales FROM 'c:SalesText.txt' WITH (FIELDTERMINATOR = ',')

  當(dāng)我們要的數(shù)據(jù)量非常大時(shí),有時(shí)候就需要啟動(dòng)觸發(fā)器。下面的腳本使用了FIRE_TRIGGERS選項(xiàng)來(lái)指明在目標(biāo)表上的任何觸發(fā)器都應(yīng)當(dāng)啟動(dòng):
  
BULK INSERT Sales FROM 'c:SalesText.txt' WITH (FIELDTERMINATOR = ',', FIRE_TRIGGERS)

  我們可以使用BATCHSIZE指令來(lái)設(shè)置在單個(gè)事務(wù)中可以插入到表中的記錄的數(shù)量。在前一個(gè)例子中,所有的1000條記錄都在同一個(gè)事務(wù)中被插入到目標(biāo)表里。下面的例子,我們將BATCHSIZE參數(shù)設(shè)置為2,也就是說(shuō)要對(duì)該表執(zhí)行500次獨(dú)立的插入事務(wù)。這也意味著啟動(dòng)500次觸發(fā)器,所以將有500咯打印指令輸出到屏幕上。
BULK INSERT Sales FROM 'c:SalesText.txt' WITH (FIELDTERMINATOR = ',', FIRE_TRIGGERS, BATCHSIZE = 2)

  BULK INSERT不僅僅可以應(yīng)用于SQL Server 2005的本地映射驅(qū)動(dòng)器。下面的語(yǔ)句將告訴我們?nèi)绾螐拿麨镕ileServer的服務(wù)器的D盤(pán)中將SalesText文件的數(shù)據(jù)導(dǎo)入。
BULK INSERT Sales FROM 'FileServerD$SalesText.txt' WITH (FIELDTERMINATOR = ',')

  有時(shí)候,我們?cè)趫?zhí)行導(dǎo)入操作以前,最好能先查看一下將要輸入的數(shù)據(jù)。下面的語(yǔ)句在使用BULK命令時(shí),使用了OPENROWSET函數(shù),以便從SalesText文本文件中讀取源數(shù)據(jù)。該語(yǔ)句同時(shí)還需要使用一個(gè)格式文件(此處沒(méi)有列出文件的具體內(nèi)容)來(lái)表明該文本文件中的數(shù)據(jù)格式。

SELECT * 
FROM OPENROWSET(BULK 'c:SalesText.txt' , 
FORMATFILE='C:SalesFormat.Xml' 
) AS mytable; 
GO 

 
生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線(xiàn)----------------------------
分享到:
------分隔線(xiàn)----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 精品久久久国产 | tv电影天堂 | 国产精品美女一区二区三区 | 久久人人爽人人爽人人片av不 | 一区二区三区日本 | 欧一区二区 | 国产热re99久久6国产精品 | 日韩精品一级 | 91久久精品国产91久久 | 久久精品久久综合 | 性视频在线播放 | 中文日韩在线 | 亚洲国产精品国自产拍av秋霞 | 91精品国产综合久久福利软件 | 波多野结衣av在线播放 | 黑人av| 福利视频网 | 欧美专区在线 | 精品一区二区三区四区 | 69av在线视频 | 91久久精品 | 久久九九免费视频 | 精品久久久久久久久久久久久久久久久 | 亚洲精品电影网在线观看 | av老司机在线观看 | 男人在线天堂 | 九九精品视频在线观看 | 日韩精品一二三四 | 精品国产免费人成在线观看 | 欧美性一区二区 | 久久aⅴ乱码一区二区三区 精品99久久久久久 99热视 | 久久国产精品毛片 | 日本一区二区三区四区视频 | 国产精品久久久一区二区 | 精精国产xxxx视频在线野外 | www在线免费观看欧美黄 | 亚洲一区欧美 | 亚洲日韩中文字幕一区 | 美女又爽又黄视频 | 国产精品视频福利 | 人成福利视频在线观看 |