成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何實現SQL Server 2008數據中的文件流功能?

數據庫 SQL Server
本文我們主要就介紹了SQL Server 2008數據中的文件流功能的詳細方法,希望能夠對您有所幫助。

如何實現SQL Server 2008數據中的文件流功能?本文我們主要就介紹這部分內容。SQL Server 2008中***的文件流功能使得你可以配制一個數據類型為varbinary(max)的列,以便將實際數據存儲在文件系統中,而非在數據庫中。只要愿意,你仍可以作為一個常規的二進制列來查詢此列,即使數據自身存儲在外部。

文件流特性通過將二進制大字段數據存儲在本地文件系統中,從而將Windows新技術文件系統(NTFS)和SQL Server數據庫引擎集成在一起。你可以使用Transact-SQL語句來查詢、插入或更新數據,或者使用Win32文件系統界面來直接訪問數據。

微軟建議你僅在以下幾種情況下使用文件流:(1)你的二進制大字段數據文件平均大于1M,(2)你需要快速讀取此數據,(3)你的應用程序使用中間列來處理應用邏輯。否則,你應該使用常規的varbinary(max)列。

要激活SQL Server 2008服務中的文件流支持,需要遵照以下幾步:

配制數據庫來支持文件流存儲。

定義支持文件流存儲的列。

啟動SQL Server服務中的文件流支持

要激活SQL Server 2008中指定實例的文件流支持,你必須首先配制此實例的SQL Server服務。在SQL Server配制管理器中,打開服務屬性并選擇“文件流”頁簽。

你至少需要選上“啟動Transact-SQL文件流訪問”勾選框。因為插入及更新數據最有效的方法是通過Win32界面,然而,你也需要激活服務來持文件流(如果有必要,也可以啟動允許遠程客戶端訪問文件流數據)。

在你激活了SQL Server服務中的文件流支持后,必須設置文件流訪問級別,你可以在SQL Server管理器中設置。要設置訪問級別,需執行以下T-SQL語句:

 

  1. Code highlighting produced by Actipro CodeHighlighter (freeware)  
  2. http://www.CodeHighlighter.com/  
  3. EXEC sp_configure filestream_access_level, 2  
  4. GO  
  5. RECONFIGURE  
  6. GO 

 

在這里,我使用系統存儲過程sp_configure將訪問級別設為2,這個級別可同時支持T-SQL和Win32流訪問。如果我想只是支持T-SQL訪問,則需要將訪問級別設為1。如果設置為0,將會禁用SQL Server實例的文件流支持。在你運行存儲過程后,需要運行RECONFIGURE命令來應用新的選項設置。

配制數據庫來支持文件流存儲

支持文件流存儲的下一步操作是向數據庫定義中添加一個文件流文件組。文件流文件組是一個特殊的文件組類型,它包含文件系統目錄(數據容器)。例如,在下邊的數據庫定義中,我創建了一個名為FileStreamGrp的文件流文件組。

 

  1. Code highlighting produced by Actipro CodeHighlighter (freeware)  
  2. http://www.CodeHighlighter.com/  
  3. USE master  
  4. GO  
  5. IF EXISTS  
  6. SELECT name FROM sys.databases  
  7. WHERE name = 'HumanResources')  
  8. DROP DATABASE HumanResources  
  9. GO  
  10. CREATE DATABASE HumanResources  
  11. ON  
  12. PRIMARY(  
  13. NAME = HumanRscsDat,  
  14. FILENAME = 'C:/Data/HR/HumanRscsDat.mdf'),  
  15. FILEGROUP FileStreamGrp CONTAINS FILESTREAM(  
  16. NAME = HumanRscsFs,  
  17. FILENAME = 'C:/Data/HR/FileStream')  
  18. LOG ON(  
  19. NAME = HumanRscsLog,  
  20. FILENAME = 'C:/Data/HR/HumanRscsLof.ldf'

 

注意,文件流文件組定義包括“文件流關鍵字”,后邊跟著邏輯名與文件名。在這里,此文件名僅僅是一個目錄路徑,沒有一個真實的名稱。當你指定了路徑,每個對象(除了最深的一個)必須存在,且最深的一個不存在。舉個例子,目錄C:/DATA/HR必須在你運

行此語句之前存在,但是C:/Data/HR/FileStream不能存在。 當你向數據庫定義中增加一個文件流文件組,SQL Server將自動創建必要的文件夾及filestream.hdr文件(這個文件是文件流容器的頭文件)和$FSLOG文件夾(支持文件流日志)。

定義支持文件流存儲的列

設置文件流存儲的下一步是配制文件流列。要使一張表包含一個文件流列,它必須也要包含一個ROWGUIDCOL關鍵字,且此關鍵字需要配制為非空和唯一約束。這個文件流列對于支持Win32文件流訪問來說是必須的。

此文件流列本身必須配制為varbinary(max)類型,并包含FILESTREAM關鍵字,如下邊的建表語句:

 

  1. Code highlighting produced by Actipro CodeHighlighter (freeware)  
  2. http://www.CodeHighlighter.com/  
  3. USE HumanResources  
  4. GO  
  5. IF OBJECT_ID ( N'Candidate', N'U') IS NOT NULL  
  6. DROP TABLE dbo.Candidate  
  7. GO  
  8. CREATE TABLE Candidate(  
  9. CandidateId INT IDENTITY PRIMARY KEY,  
  10. CandidateGuid UNIQUEIDENTIFIER ROWGUIDCOL  
  11. NOT NULL UNIQUE DEFAULT NEWID(),  
  12. CandidateResume VARBINARY(MAX) FILESTREAM NULL 

正如你看到的,列CandidateResume包含FILESTREAM關鍵字,它在數據類型名稱之后。

查詢文件流列

一旦你建立了SQL Server來支持文件流存儲,就可以使用T-SQL語句來查詢并修改數據。例如,以下的插入語向CandidateResume列中添加二進制數據。

 

  1. Code highlighting produced by Actipro CodeHighlighter (freeware)  
  2. http://www.CodeHighlighter.com/  
  3. INSERT INTO Candidate(CandidateResume)  
  4. VALUES (CAST(  
  5. 'Resume test data' AS VARBINARY(MAX))) 

 

然后你可以獲取CandidateResume列返回的數據,就好像你從任何其它列獲取數據一樣。

 

  1. Code highlighting produced by Actipro CodeHighlighter (freeware)  
  2. http://www.CodeHighlighter.com/  
  3. SELECT CandidateResume  
  4. FROM Candidate  
  5. WHERE CandidateId = 1 

 

此SELECT語句返回以下二進制數據集:0x526573756D6520746573742064617461 你也可以輕松地通過替換值來更新數據:

 

  1. Code highlighting produced by Actipro CodeHighlighter (freeware)  
  2. http://www.CodeHighlighter.com/  
  3. UPDATE Candidate  
  4. SET CandidateResume =  
  5. CAST( 'New resume test data' AS VARBINARY(MAX))  
  6. WHERE CandidateId = 1 

 

注意,我傳遞進去的是一個二進制值。如果你重新執行上邊的SELECT語句,你現在會獲以下結果:0x4E657720726573756D6520746573742064617461

正如你在前邊的例子中看到的,使用T-SQL語句來訪問列CandidateResume的數據是一個便捷的過程。然而,很顯然,我插入并更新的測試數據要比你在一般情況下存儲在FILESTREAM列中的數據要小很多。實際上,你通常會希望使用Win32文件流來訪問數據。

為了支持Win32文件流,SQL Server 2008提供函數和API,可使得從你的應用程序訪問。盡管關于Win32文件流不是本篇文章討論的范圍之內,但了解SQL Server2008中文件流功能輕松地支持從應用程序高效數據訪問是很重要的。

獲得更多關于文件流數據的Win32流細節信息,請參考SQL Server 2008在線圖書中的主題:通過使用Win32來管理文件流數據。你通常也可以在主題文件流存儲的設計與實現中獲得更多關于文件流存儲的細節信息。同時,你目前應該已經有了當你在SQL Server實例中建立文件流存儲并定義支持文件流存儲的列時所需要的相關細節信息。

關于實現SQL Server 2008數據中的文件流功能的相關知識就介紹到這里了,希望本次的介紹能夠對您有所收獲!

【編輯推薦】

  1. SQL Server 2005導入Oracle 10g的C#源碼
  2. SQL Server 2008快速清理日志文件的代碼
  3. SQL Server 2008數據庫中CDC的功能使用及說明
  4. SQL Server 2008阻止保存要求重新創建表的更改的問題
  5. SQL Server數據庫row_number() over() 來自動產生行號
責任編輯:趙鵬 來源: CSDN博客
相關推薦

2011-03-29 13:56:12

SQL Server 數據壓縮

2013-03-13 09:53:50

SQL Server

2009-04-16 18:15:19

動作審核審核活動SQL Server

2009-04-16 17:44:31

2010-07-20 09:15:03

SQL Server

2010-09-13 10:21:26

sql server2

2011-08-30 17:06:29

SQL Server CDC

2011-08-01 09:09:07

SQL Server SQL Server 數據庫

2010-10-11 09:05:40

SQL Server

2011-03-28 16:39:41

SQL Server

2011-04-18 17:07:51

2009-02-16 13:21:25

數據挖掘SQL Server SQL Server

2009-04-16 18:25:55

2010-07-19 12:47:04

SQL Server

2019-12-19 14:38:08

Flink SQL數據流Join

2010-06-18 13:01:06

SQL Server

2012-04-06 10:13:08

SQLSQL Server

2012-04-16 09:55:38

SQL Server

2010-10-14 09:32:52

SQL Server

2009-06-22 10:22:57

SQL Server
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产ts人妖系列高潮 | 国产精品久久久久久久 | 日韩精品一区二区三区视频播放 | 日韩美女一区二区三区在线观看 | 亚洲精品一区二区网址 | 一区二区三区视频在线免费观看 | 亚洲国产精品人人爽夜夜爽 | 欧美日韩一区二区在线观看 | 国产精品日日做人人爱 | 国产精品激情小视频 | 九九久视频 | 久草新在线 | 久久99精品久久久 | 日本不卡视频 | 成人在线视频免费观看 | 日韩一区二区三区四区五区六区 | 91精品国产综合久久国产大片 | 中文在线播放 | 国产精品自产拍 | 免费视频中文字幕 | 国产乱码精品一区二区三区五月婷 | 2018天天干天天操 | 青娱乐一区二区 | 久国久产久精永久网页 | 特黄特色大片免费视频观看 | 在线a视频 | 欧美三级成人理伦 | 中文成人在线 | 国产精品久久国产精品 | 色天堂影院 | 国产一级一级 | 日韩av一区二区在线观看 | 好姑娘高清在线观看电影 | 欧美一区二区在线视频 | 精品日韩一区 | 夜夜艹天天干 | 久久99精品久久 | 亚洲综合在线视频 | 日本福利视频免费观看 | 日韩二区 | www.99热这里只有精品 |