sql server 2012怎么建数据库

sql server 2012怎么建数据库,第1张

、启用FileTable

1、修改数据库引擎属性

打SQL Server配置管理器修改SQL Server数据库引擎属性使用页针 Microsoft SQL Server 2012安装启用 FILESTREAM

(1)针 Transact-SQL 访问启用 FILESTREAM

选项针 Transact-SQL 访问启用 FILESTREAM 必须选控制选项才能使用其控制选项启用选项能添加FileStream文件

(2)针文件 I/O 流访问启用 FILESTREAM

选项针 FILESTREAM 启用 Win32 流访问

(3)Windows 共享名

使用控制选项输入用存储 FILESTREAM 数据 Windows 共享名称默认该SQL Server实例名称

(4)允许远程客户端针 FILESTREAM 数据启用流访问

选控制选项允许远程客户端访问服务器 FILESTREAM 数据

2、修改服务器属性

打SQL Server Management Studio修改该实例配置默认配置:

述选项解释:

(1)FILESTREAM 访问级别显示 SQL Server 实例支持 FILESTREAM 前级别若要更改访问级别请选择值:

已禁用

二进制型象 (BLOB) 数据存储文件系统默认值即filestream access level=0

已启用 Transact-SQL 访问

使用 Transact-SQL 访问 FILESTREAM 数据能通文件系统进行访问即filestream access level=1

已启用完全访问

FILESTREAM 数据使用 Transact-SQL 及通文件系统进行访问即filestream access level=0

注意:首启用 FILESTREAM 您能需要重新启计算机才能配置驱程序

(2)FILESTREAM 共享名称显示安装程选择 FILESTREAM 共享读名称

本实验我FILESTREAM 访问级别 设定:已启用完全访问

通T-SQL脚本执行则运行脚本:

EXEC syssp_configure N'filestream access level', N'2'

RECONFIGURE WITH OVERRIDE

注意:设置完重启实例

3、配置防火墙

若要防火墙保护环境使用 FILESTREAM客户端服务器都必须能够 DNS 名称解析包含 FILESTREAM 文件服务器FILESTREAM 要求 Windows 文件共享端口 139 445 处于打状态

二、配置文件组

1、添加文件组

完述 *** 作该数据库添加专用于FileStream文件组

通脚本 *** 作请运行脚本:

ALTER DATABASE [db01] ADD FILEGROUP [FileStreamFileGroup] CONTAINS FILESTREAM

2、添加文件

完述 *** 作该数据库添加FilStream类型数据库文件

本例系统并没FileStream数据文件类型创建mdf或ndf文件文件夹C:\SqlData面自创建逻辑名称命名文件夹即 C:\SqlData\FileData其filestreamhdr 文件 FILESTREAM 容器文件数据库删除mdf、ndf、log连同文件夹都删除

通脚本 *** 作请运行脚本:

ALTER DATABASE [db01] ADD FILE ( NAME = N'FileData', FILENAME = N'C:\SqlData\FileData' ) TO FILEGROUP [FileStreamFileGroup]

注意:例运行脚本前必须存C:\SqlData建议使用右侧选择按钮选择路径路径存报错:

同能存重复文件夹即能存C:\SqlData\FileData否则报错:

3、启非事务访问

FileTable 使 Windows 应用程序获取 FILESTREAM 数据 Windows 文件句柄需要 SQL Server 事务允许 SQL Server 存储文件进行非事务性访问必须要包含 FileTable 每数据库数据库级别指定所需非事务性访问级别

选项解释:

(1)FILESTREAM 非事务访问

文件系统 FileTables 存储 FILESTREAM 数据非事务性访问指定选项:OFF、READ_ONLY 或 FULL

服务器未启用 FILESTREAM则该值设置 OFF 并且禁用本实验其设置FULL

(2)FILESTREAM 目录名称

与所选数据库相关联 FILESTREAM 数据指定目录名称 FileTable 文件夹层结构数据库级目录实例级别 FILESTREAM 指定共享名称级及数据库创建 FileTable 父级

启用非事务性访问没提供目录名称则必须提供才能数据库创建 FileTable

通脚本执行:

ALTER DATABASE db01

SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'ImageFiles' )

注意:更改现数据库调用带 DIRECTORY_NAME FILESTREAM 选项 ALTER DATABASE (Transact-SQL) 语句使用些选项更改目录名称数据库必须独占式锁定没打文件句柄

说明:检查否数据库启用非事务性访问查询目录视图脚本:

SELECT DB_NAME(database_id), non_transacted_access, non_transacted_access_desc

FROM sysdatabase_filestream_options

三、创建FileTable

1、创建第FileTable

SQL Server Management Studio提供脚本模板要想创建FileTable用脚本完:

USE db01

CREATE TABLE ImageTable1 AS FILETABLE

官范本:

USE [db01]

CREATE TABLE [dbo][ImageTable1] AS FILETABLE ON [PRIMARY] FILESTREAM_ON [FileStreamFileGroup]

WITH

(FILETABLE_DIRECTORY = N'ImageTable1', FILETABLE_COLLATE_FILENAME = Chinese_PRC_CI_AS)

2、创建第二FileTable

CREATE TABLE ImageTable2 AS FILETABLE

3、获取共享路径

文件表创建相应产文件表共享目录该目录路径通内建函数获取:

SELECT FileTableRootPath('ImageTable1')

本实验所返结:\\SQL1\SqlFile\ImageFiles\ImageTable1

4、查看

通Windows资源管理器见已经创建GUID命名文件夹

通SQL Server Management Studio查看表结构

四、 *** 作

1、向文件夹添加文件

通 Windows资源管理器向文件夹\\SQL1\SqlFile\ImageFiles\ImageTable1添加文件A01GIF运行脚本:

select from ImageTable1

结:

见 SQL Server自Table添加记录

2、文件改名

运行脚本:

update ImageTable1 set name='CupGIF' where name='A01GIF'

通Windows资源管理器查看文件夹\\SQL1\SqlFile\ImageFiles\ImageTable1见文件A01GIF已经改名CupGIF

3、查看共享文件夹

我继续复制其文件通Windows资源管理器查看文件夹

4、删除文件

使用脚本删除例:

Delete ImageTable1 where name='CupGIF'

或者通Windows资源管理器直接删除该文件

五、备份原

1、备份数据库

使用 SQL Server 备份数据库FILESTREAM 数据与数据库结构化数据起备份

2、部备份

想 FILESTREAM 数据与关系数据起备份则使用部备份 FILESTREAM 文件组排除外

一、启用FileTable

1、修改数据库引擎的属性

打开“SQL Server配置管理器”,修改SQL Server数据库引擎的属性。使用此页可针对此 Microsoft SQL Server 2012安装启用 FILESTREAM。

(1)针对 Transact-SQL 访问启用 FILESTREAM

选中此项可针对 Transact-SQL 访问启用 FILESTREAM。 必须选中此控制选项,才能使用其他控制选项。如果不启用此选项,就不能添加FileStream文件组。

(2)针对文件 I/O 流访问启用 FILESTREAM

选中此项可针对 FILESTREAM 启用 Win32 流访问。

(3)Windows 共享名

使用此控制选项可输入将用来存储 FILESTREAM 数据的 Windows 共享的名称。默认为该SQL Server实例的名称。

(4)允许远程客户端针对 FILESTREAM 数据启用流访问

选中此控制选项可允许远程客户端访问此服务器上的此 FILESTREAM 数据。

2、修改服务器的属性

打开“SQL Server Management Studio”,修改该实例的配置。默认配置如下:

上述选项解释如下:

(1)“FILESTREAM 访问级别”显示 SQL Server 实例上支持的 FILESTREAM 的当前级别。若要更改访问级别,请选择以下值之一:

已禁用

无法将二进制大型对象 (BLOB) 数据存储在文件系统中。此为默认值。即filestream access level=0

已启用 Transact-SQL 访问

可使用 Transact-SQL 访问 FILESTREAM 数据,但不能通过文件系统进行访问。即filestream access level=1

已启用完全访问

FILESTREAM 数据可使用 Transact-SQL 以及通过文件系统进行访问。即filestream access level=0

注意:在首次启用 FILESTREAM 时,您可能需要重新启动计算机才能配置驱动程序。

(2)“FILESTREAM 共享名称”显示在安装过程中选择的 FILESTREAM 共享的只读名称。

在本次实验中,我们将“FILESTREAM 访问级别” 设定为:已启用完全访问。

如果是通过T-SQL脚本执行,则运行以下脚本:

EXEC syssp_configure N'filestream access level', N'2'

RECONFIGURE WITH OVERRIDE

注意:设置完成之后,重启实例。

3、配置防火墙

若要在防火墙保护的环境中使用 FILESTREAM,客户端和服务器都必须能够将 DNS 名称解析为包含 FILESTREAM 文件的服务器。FILESTREAM 要求 Windows 文件共享端口 139 和 445 处于打开状态。

二、配置文件组

1、添加文件组

完成上述 *** 作之后,就可以为该数据库添加专用于FileStream的文件组。

如果是通过脚本 *** 作,请运行以下脚本:

ALTER DATABASE [db01] ADD FILEGROUP [FileStreamFileGroup] CONTAINS FILESTREAM

2、添加文件

完成上述 *** 作之后,就可以为该数据库添加FilStream类型的数据库文件。

在本例中,系统并没有为“FileStream数据”的文件类型创建mdf或ndf文件,而是在文件夹C:\SqlData下面自动创建以逻辑名称命名的文件夹,即 C:\SqlData\FileData。其中filestreamhdr 文件是 FILESTREAM 容器的头文件。当这个数据库被删除时,mdf、ndf、log连同这个文件夹都会被删除。

如果是通过脚本 *** 作,请运行以下脚本:

ALTER DATABASE [db01] ADD FILE ( NAME = N'FileData', FILENAME = N'C:\SqlData\FileData' ) TO FILEGROUP [FileStreamFileGroup]

注意:在上例中,在运行脚本之前,必须存在C:\SqlData,建议使用右侧的选择按钮选择路径。如果路径不存在,就会报错:

同时不能存在重复的文件夹,即不能存在C:\SqlData\FileData。否则也会报错:

3、启动非事务访问

FileTable 使 Windows 应用程序可以获取 FILESTREAM 数据的 Windows 文件句柄而不需要 SQL Server 事务。为了允许对 SQL Server 中存储的文件进行此非事务性访问,必须为要包含 FileTable 的每个数据库在数据库级别上指定所需的非事务性访问级别。

选项解释如下:

(1)FILESTREAM 非事务访问

为从文件系统到 FileTables 中存储的 FILESTREAM 数据的非事务性访问指定以下选项之一:OFF、READ_ONLY 或 FULL。

如果在服务器上未启用 FILESTREAM,则该值将设置为 OFF 并且被禁用。在本次实验中,将其设置为FULL。

(2)FILESTREAM 目录名称

为与所选数据库相关联的 FILESTREAM 数据指定目录名称。在 FileTable 文件夹层次结构中,此数据库级目录将成为在实例级别为 FILESTREAM 指定的共享名称的子级以及在数据库中创建的 FileTable 的父级。

如果启用非事务性访问时没有提供目录名称,则在以后必须提供它,这样才能在数据库中创建 FileTable。

如果是通过脚本执行,如下:

ALTER DATABASE db01

SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'ImageFiles' )

注意:更改现有数据库时,调用带 DIRECTORY_NAME FILESTREAM 选项的 ALTER DATABASE (Transact-SQL) 语句。使用这些选项更改目录名称时,数据库必须以独占方式锁定,没有打开的文件句柄。

说明:为检查是否在数据库上启用了非事务性访问,可以查询目录视图,脚本如下:

SELECT DB_NAME(database_id), non_transacted_access, non_transacted_access_desc

FROM sysdatabase_filestream_options

三、创建FileTable

1、创建第一个FileTable

“SQL Server Management Studio”只提供一个脚本模板,要想创建FileTable还是得用脚本完成:

USE db01

CREATE TABLE ImageTable1 AS FILETABLE

官方的范本为:

USE [db01]

CREATE TABLE [dbo][ImageTable1] AS FILETABLE ON [PRIMARY] FILESTREAM_ON [FileStreamFileGroup]

WITH

(FILETABLE_DIRECTORY = N'ImageTable1', FILETABLE_COLLATE_FILENAME = Chinese_PRC_CI_AS)

2、创建第二个FileTable

CREATE TABLE ImageTable2 AS FILETABLE

3、获取共享路径

文件表创建之后,就会相应的产生一个文件表共享目录,该目录路径可以通过内建函数获取:

SELECT FileTableRootPath('ImageTable1')

本次实验所返回的结果为:\\SQL1\SqlFile\ImageFiles\ImageTable1

4、查看

通过Windows资源管理器,可见已经创建了以GUID命名的文件夹。

通过SQL Server Management Studio,查看表的结构。

四、 *** 作

1、向文件夹中添加文件

通过 “Windows资源管理器”,向文件夹\\SQL1\SqlFile\ImageFiles\ImageTable1中添加一个文件A01GIF。然后运行脚本:

select from ImageTable1

结果如下:

可见, SQL Server自动在Table中添加了记录。

2、文件改名

运行以下脚本:

update ImageTable1 set name='CupGIF' where name='A01GIF'

通过“Windows资源管理器”,查看文件夹\\SQL1\SqlFile\ImageFiles\ImageTable1,可见文件A01GIF已经被改名为CupGIF 。

3、查看共享文件夹

我们可以继续复制其他文件,然后通过“Windows资源管理器”,查看文件夹。

4、删除文件

可以使用脚本删除,例如:

Delete ImageTable1 where name='CupGIF'

或者,通过“Windows资源管理器”直接删除该文件。

五、备份和还原

1、备份数据库

使用 SQL Server 备份数据库时,FILESTREAM 数据将与数据库中的结构化数据一起备份。

2、部分备份

如果不想将 FILESTREAM 数据与关系数据一起备份,则可以使用部分备份将 FILESTREAM 文件组排除在外。

一、启用FileTable

1、修改数据库引擎的属性

打开“SQL Server配置管理器”,修改SQL Server数据库引擎的属性。使用此页可针对此 Microsoft SQL Server 2012安装启用 FILESTREAM。

(1)针对 Transact-SQL 访问启用 FILESTREAM

选中此项可针对 Transact-SQL 访问启用 FILESTREAM。 必须选中此控制选项,才能使用其他控制选项。如果不启用此选项,就不能添加FileStream文件组。

(2)针对文件 I/O 流访问启用 FILESTREAM

选中此项可针对 FILESTREAM 启用 Win32 流访问。

(3)Windows 共享名

使用此控制选项可输入将用来存储 FILESTREAM 数据的 Windows 共享的名称。默认为该SQL Server实例的名称。

(4)允许远程客户端针对 FILESTREAM 数据启用流访问

选中此控制选项可允许远程客户端访问此服务器上的此 FILESTREAM 数据。

2、修改服务器的属性

打开“SQL Server Management Studio”,修改该实例的配置。默认配置如下:

上述选项解释如下:

(1)“FILESTREAM 访问级别”显示 SQL Server 实例上支持的 FILESTREAM 的当前级别。若要更改访问级别,请选择以下值之一:

已禁用

无法将二进制大型对象 (BLOB) 数据存储在文件系统中。此为默认值。即filestream access level=0

已启用 Transact-SQL 访问

可使用 Transact-SQL 访问 FILESTREAM 数据,但不能通过文件系统进行访问。即filestream access level=1

已启用完全访问

FILESTREAM 数据可使用 Transact-SQL 以及通过文件系统进行访问。即filestream access level=0

注意:在首次启用 FILESTREAM 时,您可能需要重新启动计算机才能配置驱动程序。

(2)“FILESTREAM 共享名称”显示在安装过程中选择的 FILESTREAM 共享的只读名称。

在本次实验中,我们将“FILESTREAM 访问级别” 设定为:已启用完全访问。

如果是通过T-SQL脚本执行,则运行以下脚本:

EXEC syssp_configure N'filestream access level', N'2'

RECONFIGURE WITH OVERRIDE

注意:设置完成之后,重启实例。

3、配置防火墙

若要在防火墙保护的环境中使用 FILESTREAM,客户端和服务器都必须能够将 DNS 名称解析为包含 FILESTREAM 文件的服务器。FILESTREAM 要求 Windows 文件共享端口 139 和 445 处于打开状态。

二、配置文件组

1、添加文件组

完成上述 *** 作之后,就可以为该数据库添加专用于FileStream的文件组。

如果是通过脚本 *** 作,请运行以下脚本:

ALTER DATABASE [db01] ADD FILEGROUP [FileStreamFileGroup] CONTAINS FILESTREAM

2、添加文件

完成上述 *** 作之后,就可以为该数据库添加FilStream类型的数据库文件。

在本例中,系统并没有为“FileStream数据”的文件类型创建mdf或ndf文件,而是在文件夹C:\SqlData下面自动创建以逻辑名称命名的文件夹,即 C:\SqlData\FileData。其中filestreamhdr 文件是 FILESTREAM 容器的头文件。当这个数据库被删除时,mdf、ndf、log连同这个文件夹都会被删除。

如果是通过脚本 *** 作,请运行以下脚本:

ALTER DATABASE [db01] ADD FILE ( NAME = N'FileData', FILENAME = N'C:\SqlData\FileData' ) TO FILEGROUP [FileStreamFileGroup]

注意:在上例中,在运行脚本之前,必须存在C:\SqlData,建议使用右侧的选择按钮选择路径。如果路径不存在,就会报错:

同时不能存在重复的文件夹,即不能存在C:\SqlData\FileData。否则也会报错:

3、启动非事务访问

FileTable 使 Windows 应用程序可以获取 FILESTREAM 数据的 Windows 文件句柄而不需要 SQL Server 事务。为了允许对 SQL Server 中存储的文件进行此非事务性访问,必须为要包含 FileTable 的每个数据库在数据库级别上指定所需的非事务性访问级别。

选项解释如下:

(1)FILESTREAM 非事务访问

为从文件系统到 FileTables 中存储的 FILESTREAM 数据的非事务性访问指定以下选项之一:OFF、READ_ONLY 或 FULL。

如果在服务器上未启用 FILESTREAM,则该值将设置为 OFF 并且被禁用。在本次实验中,将其设置为FULL。

(2)FILESTREAM 目录名称

为与所选数据库相关联的 FILESTREAM 数据指定目录名称。在 FileTable 文件夹层次结构中,此数据库级目录将成为在实例级别为 FILESTREAM 指定的共享名称的子级以及在数据库中创建的 FileTable 的父级。

如果启用非事务性访问时没有提供目录名称,则在以后必须提供它,这样才能在数据库中创建 FileTable。

如果是通过脚本执行,如下:

ALTER DATABASE db01

SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'ImageFiles' )

注意:更改现有数据库时,调用带 DIRECTORY_NAME FILESTREAM 选项的 ALTER DATABASE (Transact-SQL) 语句。使用这些选项更改目录名称时,数据库必须以独占方式锁定,没有打开的文件句柄。

说明:为检查是否在数据库上启用了非事务性访问,可以查询目录视图,脚本如下:

SELECT DB_NAME(database_id), non_transacted_access, non_transacted_access_desc

FROM sysdatabase_filestream_options

三、创建FileTable

1、创建第一个FileTable

“SQL Server Management Studio”只提供一个脚本模板,要想创建FileTable还是得用脚本完成:

USE db01

CREATE TABLE ImageTable1 AS FILETABLE

官方的范本为:

USE [db01]

CREATE TABLE [dbo][ImageTable1] AS FILETABLE ON [PRIMARY] FILESTREAM_ON [FileStreamFileGroup]

WITH

(FILETABLE_DIRECTORY = N'ImageTable1', FILETABLE_COLLATE_FILENAME = Chinese_PRC_CI_AS)

2、创建第二个FileTable

CREATE TABLE ImageTable2 AS FILETABLE

3、获取共享路径

文件表创建之后,就会相应的产生一个文件表共享目录,该目录路径可以通过内建函数获取:

SELECT FileTableRootPath('ImageTable1')

本次实验所返回的结果为:\\SQL1\SqlFile\ImageFiles\ImageTable1

4、查看

通过Windows资源管理器,可见已经创建了以GUID命名的文件夹。

通过SQL Server Management Studio,查看表的结构。

四、 *** 作

1、向文件夹中添加文件

通过 “Windows资源管理器”,向文件夹\\SQL1\SqlFile\ImageFiles\ImageTable1中添加一个文件A01GIF。然后运行脚本:

select from ImageTable1

结果如下:

可见, SQL Server自动在Table中添加了记录。

2、文件改名

运行以下脚本:

update ImageTable1 set name='CupGIF' where name='A01GIF'

通过“Windows资源管理器”,查看文件夹\\SQL1\SqlFile\ImageFiles\ImageTable1,可见文件A01GIF已经被改名为CupGIF 。

3、查看共享文件夹

我们可以继续复制其他文件,然后通过“Windows资源管理器”,查看文件夹。

4、删除文件

可以使用脚本删除,例如:

Delete ImageTable1 where name='CupGIF'

或者,通过“Windows资源管理器”直接删除该文件。

五、备份和还原

1、备份数据库

使用 SQL Server 备份数据库时,FILESTREAM 数据将与数据库中的结构化数据一起备份。

2、部分备份

如果不想将 FILESTREAM 数据与关系数据一起备份,则可以使用部分备份将 FILESTREAM 文件组排除在外。

六、相关说明

详见 >

一、启用FileTable

1、修改数据库引擎的属性

打开“SQL Server配置管理器”,修改SQL Server数据库引擎的属性。使用此页可针对此 Microsoft SQL Server 2012安装启用 FILESTREAM。

(1)针对 Transact-SQL 访问启用 FILESTREAM

选中此项可针对 Transact-SQL 访问启用 FILESTREAM。 必须选中此控制选项,才能使用其他控制选项。如果不启用此选项,就不能添加FileStream文件组。

(2)针对文件 I/O 流访问启用 FILESTREAM

选中此项可针对 FILESTREAM 启用 Win32 流访问。

(3)Windows 共享名

使用此控制选项可输入将用来存储 FILESTREAM 数据的 Windows 共享的名称。默认为该SQL Server实例的名称。

(4)允许远程客户端针对 FILESTREAM 数据启用流访问

选中此控制选项可允许远程客户端访问此服务器上的此 FILESTREAM 数据。

2、修改服务器的属性

打开“SQL Server Management Studio”,修改该实例的配置。默认配置如下:

上述选项解释如下:

(1)“FILESTREAM 访问级别”显示 SQL Server 实例上支持的 FILESTREAM 的当前级别。若要更改访问级别,请选择以下值之一:

已禁用

无法将二进制大型对象 (BLOB) 数据存储在文件系统中。此为默认值。即filestream access level=0

已启用 Transact-SQL 访问

可使用 Transact-SQL 访问 FILESTREAM 数据,但不能通过文件系统进行访问。即filestream access level=1

已启用完全访问

FILESTREAM 数据可使用 Transact-SQL 以及通过文件系统进行访问。即filestream access level=0

注意:在首次启用 FILESTREAM 时,您可能需要重新启动计算机才能配置驱动程序。

(2)“FILESTREAM 共享名称”显示在安装过程中选择的 FILESTREAM 共享的只读名称。

在本次实验中,我们将“FILESTREAM 访问级别” 设定为:已启用完全访问。

如果是通过T-SQL脚本执行,则运行以下脚本:

EXEC syssp_configure N'filestream access level', N'2'

RECONFIGURE WITH OVERRIDE

注意:设置完成之后,重启实例。

3、配置防火墙

若要在防火墙保护的环境中使用 FILESTREAM,客户端和服务器都必须能够将 DNS 名称解析为包含 FILESTREAM 文件的服务器。FILESTREAM 要求 Windows 文件共享端口 139 和 445 处于打开状态。

二、配置文件组

1、添加文件组

完成上述 *** 作之后,就可以为该数据库添加专用于FileStream的文件组。

如果是通过脚本 *** 作,请运行以下脚本:

ALTER DATABASE [db01] ADD FILEGROUP [FileStreamFileGroup] CONTAINS FILESTREAM

2、添加文件

完成上述 *** 作之后,就可以为该数据库添加FilStream类型的数据库文件。

在本例中,系统并没有为“FileStream数据”的文件类型创建mdf或ndf文件,而是在文件夹C:\SqlData下面自动创建以逻辑名称命名的文件夹,即 C:\SqlData\FileData。其中filestreamhdr 文件是 FILESTREAM 容器的头文件。当这个数据库被删除时,mdf、ndf、log连同这个文件夹都会被删除。

如果是通过脚本 *** 作,请运行以下脚本:

ALTER DATABASE [db01] ADD FILE ( NAME = N'FileData', FILENAME = N'C:\SqlData\FileData' ) TO FILEGROUP [FileStreamFileGroup]

注意:在上例中,在运行脚本之前,必须存在C:\SqlData,建议使用右侧的选择按钮选择路径。如果路径不存在,就会报错:

同时不能存在重复的文件夹,即不能存在C:\SqlData\FileData。否则也会报错:

3、启动非事务访问

FileTable 使 Windows 应用程序可以获取 FILESTREAM 数据的 Windows 文件句柄而不需要 SQL Server 事务。为了允许对 SQL Server 中存储的文件进行此非事务性访问,必须为要包含 FileTable 的每个数据库在数据库级别上指定所需的非事务性访问级别。

选项解释如下:

(1)FILESTREAM 非事务访问

为从文件系统到 FileTables 中存储的 FILESTREAM 数据的非事务性访问指定以下选项之一:OFF、READ_ONLY 或 FULL。

如果在服务器上未启用 FILESTREAM,则该值将设置为 OFF 并且被禁用。在本次实验中,将其设置为FULL。

(2)FILESTREAM 目录名称

为与所选数据库相关联的 FILESTREAM 数据指定目录名称。在 FileTable 文件夹层次结构中,此数据库级目录将成为在实例级别为 FILESTREAM 指定的共享名称的子级以及在数据库中创建的 FileTable 的父级。

如果启用非事务性访问时没有提供目录名称,则在以后必须提供它,这样才能在数据库中创建 FileTable。

如果是通过脚本执行,如下:

ALTER DATABASE db01

SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'ImageFiles' )

注意:更改现有数据库时,调用带 DIRECTORY_NAME FILESTREAM 选项的 ALTER DATABASE (Transact-SQL) 语句。使用这些选项更改目录名称时,数据库必须以独占方式锁定,没有打开的文件句柄。

说明:为检查是否在数据库上启用了非事务性访问,可以查询目录视图,脚本如下:

SELECT DB_NAME(database_id), non_transacted_access, non_transacted_access_desc

FROM sysdatabase_filestream_options

三、创建FileTable

1、创建第一个FileTable

“SQL Server Management Studio”只提供一个脚本模板,要想创建FileTable还是得用脚本完成:

USE db01

CREATE TABLE ImageTable1 AS FILETABLE

官方的范本为:

USE [db01]

CREATE TABLE [dbo][ImageTable1] AS FILETABLE ON [PRIMARY] FILESTREAM_ON [FileStreamFileGroup]

WITH

(FILETABLE_DIRECTORY = N'ImageTable1', FILETABLE_COLLATE_FILENAME = Chinese_PRC_CI_AS)

2、创建第二个FileTable

CREATE TABLE ImageTable2 AS FILETABLE

3、获取共享路径

文件表创建之后,就会相应的产生一个文件表共享目录,该目录路径可以通过内建函数获取:

SELECT FileTableRootPath('ImageTable1')

本次实验所返回的结果为:\\SQL1\SqlFile\ImageFiles\ImageTable1

4、查看

通过Windows资源管理器,可见已经创建了以GUID命名的文件夹。

通过SQL Server Management Studio,查看表的结构。

四、 *** 作

1、向文件夹中添加文件

通过 “Windows资源管理器”,向文件夹\\SQL1\SqlFile\ImageFiles\ImageTable1中添加一个文件A01GIF。然后运行脚本:

select from ImageTable1

结果如下:

可见, SQL Server自动在Table中添加了记录。

2、文件改名

运行以下脚本:

update ImageTable1 set name='CupGIF' where name='A01GIF'

通过“Windows资源管理器”,查看文件夹\\SQL1\SqlFile\ImageFiles\ImageTable1,可见文件A01GIF已经被改名为CupGIF 。

3、查看共享文件夹

我们可以继续复制其他文件,然后通过“Windows资源管理器”,查看文件夹。

4、删除文件

可以使用脚本删除,例如:

Delete ImageTable1 where name='CupGIF'

或者,通过“Windows资源管理器”直接删除该文件。

五、备份和还原

1、备份数据库

使用 SQL Server 备份数据库时,FILESTREAM 数据将与数据库中的结构化数据一起备份。

2、部分备份

如果不想将 FILESTREAM 数据与关系数据一起备份,则可以使用部分备份将 FILESTREAM 文件组排除在外。

六、相关说明

详见 >

以上就是关于sql server 2012怎么建数据库全部的内容,包括:sql server 2012怎么建数据库、如何利用SQL Server 2012数据库 *** 作事务管理、sql2012怎么输入对象名称等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10219898.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存