新聞中心
使用SQL Server數(shù)據(jù)庫(kù)的時(shí)候,OPENROWSET 函數(shù)是經(jīng)常會(huì)用到了,那么,如何合理使用SQL中的OPENROWSET 函數(shù)呢?請(qǐng)看下文。

成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供攸縣企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、H5響應(yīng)式網(wǎng)站、小程序制作等業(yè)務(wù)。10年已為攸縣眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。
SQL Server 2005 的 OPENROWSET 函數(shù)能夠一次就完成遠(yuǎn)程數(shù)據(jù)的連結(jié)與存取作業(yè)。OPENROWSET 函數(shù)在使用的形式上就好比是一個(gè)資料表,比方說(shuō),您可以在 SELECT 陳述式的 FROM 子句中參考 OPENROWSET 函數(shù),此外,視 OLE DB 提供者的能力而定,您也可以在 INSERT、UPDATE 或 DELETE 陳述式中把 OPENROWSET 函數(shù)當(dāng)成目標(biāo)數(shù)據(jù)表來(lái)使用。
特別值得一提的是,SQL Server 2005 替 OPENROWSET 函數(shù)加入了 BULK 數(shù)據(jù)列集提供者,使得您可以直接從文字文件、XML 文件、以及圖檔…等檔案中讀取數(shù)據(jù)。此意味著,從現(xiàn)在開(kāi)始,您可以在一道非常簡(jiǎn)單的 INSERT INTO…SELECT 陳述式中使用 OPENROWSET 函數(shù)來(lái)將內(nèi)含大量數(shù)據(jù)的檔案內(nèi)容存入數(shù)據(jù)表的字段中。
OPENROWSET BULK 選項(xiàng)自變量可以精確控制數(shù)據(jù)讀取的開(kāi)始與結(jié)束位置、如何處理錯(cuò)誤、以及資料要如何被解譯。比方說(shuō),您可以要求將數(shù)據(jù)文件讀取成 varbinary、varchar 或 nvarchar 型別的單一數(shù)據(jù)列與單一字段的數(shù)據(jù)列集。
光說(shuō)不練是沒(méi)有用的,以下的程序代碼中,我們會(huì)先建立一個(gè)數(shù)據(jù)表,然后使用 INSERT INTO…SELECT 陳述式來(lái)新數(shù)據(jù)記錄。請(qǐng)?zhí)貏e注意我們?nèi)绾问褂?OPENROWSET 函數(shù)將文字文件(.txt)與圖檔(.jpg)的內(nèi)容直接存入數(shù)據(jù)表的「自傳」與「玉照」字段中:
USE 北風(fēng)貿(mào)易;
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id =
OBJECT_ID(N'dbo.練習(xí)資料表') AND type in (N'U'))
DROP TABLE dbo.練習(xí)資料表
GO
--建立數(shù)據(jù)表
CREATE TABLE dbo.練習(xí)資料表(
編號(hào) int IDENTITY(1,1) NOT NULL,
姓名 nvarchar(10) NULL,
性別 nvarchar(2) NULL,
自傳 nvarchar(max) NULL,
玉照 varbinary(max) NULL,
);
GO
--新增***筆數(shù)據(jù)(包括 NCLOB 與 BLOB 在內(nèi))
INSERT INTO dbo.練習(xí)資料表
(
姓名,
性別,
自傳,
玉照
)
SELECT '章立民' AS 姓名, '男' AS 性別,
* FROM
OPENROWSET
(BULK 'C:\Temp\Employee-A156401174.txt', SINGLE_NCLOB) AS 自傳,
OPENROWSET
(BULK 'C:\Temp\Employee-A156401174.jpg', SINGLE_BLOB) AS 玉照;
GO
--新增第二筆數(shù)據(jù)(包括 NCLOB 與 BLOB 在內(nèi))
INSERT INTO dbo.練習(xí)資料表
(
姓名,
性別,
自傳,
玉照
)
SELECT '章立民' AS 姓名, '男' AS 性別,
* FROM
OPENROWSET
(BULK 'C:\Temp\Employee-A156401174.txt', SINGLE_NCLOB) AS 自傳,
OPENROWSET
(BULK 'C:\Temp\Employee-A156404535.jpg', SINGLE_BLOB) AS 玉照;
GO
【編輯推薦】
SQL函數(shù)返回表的示例
SQL中遺留的"系統(tǒng)"函數(shù)
Sql Server數(shù)據(jù)類型轉(zhuǎn)換函數(shù)
SQL漢字轉(zhuǎn)換為拼音的函數(shù)
Sql語(yǔ)言中的日期格式化函數(shù)getDate()
文章標(biāo)題:SQLServer中如何使用OPENROWSET函數(shù)
網(wǎng)頁(yè)網(wǎng)址:http://www.5511xx.com/article/cojsiii.html


咨詢
建站咨詢
