我怎么能知道我刚插入到数据库中的FILESTREAM
数据的物理位置(所以我可以在Windows资源管理器中看到它)?FILESTREAM数据的物理位置
2
A
回答
0
首先,您需要了解FileStream存储在承载SQL Server 2008数据库的服务器上。如果您有DBA,请问他们在哪里创建了FileStream。当然,您将需要权限到服务器来导航它以查看目录。您将无法以任何方式操作文件,但您将能够看到它们。大多数DBA不会热衷于让你知道FileStream的位置。
但是,您可以通过其他方式获取路径。想到的一种方法是通过选择FileStream字段的PathName()。假设启用FileStream的字段是ReportData,并且它所在的表是TblReports。下面的T-SQL语法将产生一个UNC的位置:
select top 1 ReportData.PathName(0)
from dbo.datReport
,我相信你也可以在通过企业管理等手段的路径,但我忘了如何在一瞬间。
2
正如Pawel所述,使用Windows资源管理器访问FILESTREAM文件不是一个好主意。如果您仍然决定继续探索,请阅读以下提示。
FILESTREAM文件名实际上是创建文件时数据库事务日志中的日志序列号。 Paul Randal在this post中解释过它。因此,一种方法是找出日志序列号并查找文件流数据容器中以该文件命名的文件。
3
我知道这是一个较旧的帖子,但它仍然出现在谷歌搜索排名高,我想我会发布一个答案。当然,在SQL的更高版本(我还没有尝试这个于2008年),您可以运行下面的查询:
SELECT t.name AS 'table',
c.name AS 'column',
fg.name AS 'filegroup_name',
dbf.type_desc AS 'type_description',
dbf.physical_name AS 'physical_location'
FROM sys.filegroups fg
INNER JOIN sys.database_files dbf
ON fg.data_space_id = dbf.data_space_id
INNER JOIN sys.tables t
ON fg.data_space_id = t.filestream_data_space_id
INNER JOIN sys.columns c
ON t.object_id = c.object_id
AND c.is_filestream = 1
7
有这个一个选项:()方法PhysicalPathName。如果你是SQL Server 2012中或上现在,该代码会为你工作:
SELECT stream.PhysicalPathName() AS 'Path' FROM Media
OPTION (QUERYTRACEON 5556)
对于SQL Server 2008/2008 R2则需要启用跟踪标志5556为整个实例:
DBCC TRACEON (5556, -1)
GO
或为特定连接中,您呼叫PhysicalPathName()方法:
DBCC TRACEON (5556, -1)
GO
0
--filestream文件路径
SELECT col.PathName() AS path FROM tbl
相关问题
- 1. Hadoop配置物理位置
- 2. 物体在数据库中的位置
- 3. Android模拟器数据库的物理位置
- 4. Windows安装程序数据库物理位置
- 5. 数据库表格插入,例外19和物理位置
- 6. 数据库物理文件存储位置
- 7. 在Management Studio中为单个数据库选择物理位置
- 8. SQL物理数据库文件位置(恢复)?
- 9. 泊坞窗配置物理位置
- 10. Cassandra的墓碑物理位置
- 11. DTO在项目中的物理位置
- 12. 删除FILESTREAM数据
- 13. NSUserDefaults物理数据
- 14. 浏览器存储 - 物理位置?
- 15. 分配IP地址到物理位置
- 16. ASP .net当前物理位置
- 17. 为什么物理Web需要位置?
- 18. 使用行的物理位置作为数据库中的主键
- 19. 理解FILESTREAM
- 20. AltDS - 备用数据流在光盘上的物理存储位置在哪里?
- 21. 数据类型为物理
- 22. 处理FileStream和BinaryReader
- 23. 如何在子弹物理中设置柔体的位置
- 24. NSTextField购物车的位置
- 25. 推文与地理位置数据的数据集
- 26. 将MemoryStream转换为FileStream时FileStream数据不完整
- 27. 将fileStream的内容放入数据集
- 28. 物理硬件的数据库设计
- 29. ASP.NET MVC3来自控制器的视图的物理位置
- 30. 由MPI运行系统分配的进程的物理位置
为什么你需要这个?作为普通文件访问文件流文件不是推荐的。默认情况下,你甚至无法访问这些文件。这就像在一个mdf文件中的哪个位置可以找到刚刚插入数据库表中的值。直接篡改文件流文件(而不是通过提供的API)是破坏数据库的简单方法。 – 2010-02-02 23:54:43