SqlServer2012 File Table文件表(二)

2015-07-24 08:59:06 · 作者: · 浏览: 4
cumentStore] \

?

?

--	也可以用GetFileNamespacePath查看 FileTable 中文件或目录的 UNC 路径。
SELECT 
 file_stream.GetFileNamespacePath()
,file_stream.GetFileNamespacePath(1, 0)
FROM [dbo].[DocumentStore]


?

删除表 FileTable 中的记录,文件也会被删除:

?

--	删除表 FileTable 中的记录,文件也会被删除
DELETE FROM [dbo].[DocumentStore] WHERE stream_id = 'BA483ECA-AE0E-E511-8367-005056C00008'

SELECT * FROM [dbo].[DocumentStore]
\

?

若要获取执行某些管理任务所需的独占访问权限,可能必须暂时禁用非事务性访问权限。

禁用完全非事务性访问权限:

?

ALTER DATABASE [AdventureWorks2012]
    SET FILESTREAM ( NON_TRANSACTED_ACCESS = OFF );
GO
--	关闭后,路径无法打开
--	\\Kk-pc\mssqlserver\FileStreamPath\FileStreamPath
--	此时文件表 [DocumentStore] 仍可正常操作


ALTER DATABASE [AdventureWorks2012]
    SET FILESTREAM ( NON_TRANSACTED_ACCESS = READ_ONLY );
GO
--	只读状态,路径可拷贝文件出来,但无法拷贝文件到该目录
--	\\Kk-pc\mssqlserver\FileStreamPath\FileStreamPath
--	此时文件表 [DocumentStore] 仍可正常操作

重新启用完全非事务性访问权限:

?

?

--	重新启用完全非事务性访问权限
ALTER DATABASE [AdventureWorks2012]
    SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL );
GO


?

禁用 FileTable 命名空间将会禁用所有系统定义的约束并触发使用 FileTable 创建的约束。

?

--	禁用 FileTable 命名空间
--	(禁用后路径 \\Kk-pc\mssqlserver\FileStreamPath\FileStreamPath 不可访问)
ALTER TABLE [DocumentStore] DISABLE FILETABLE_NAMESPACE;
GO

--	重新启用 FileTable 命名空间
ALTER TABLE [DocumentStore] ENABLE FILETABLE_NAMESPACE;
GO

更多注意的事情还需要到参考官方文档:FileTable 与其他 SQL Server 功能的兼容性

?