我在 SQL 2016 中使用 Filetable。让我们看看下面的一些选择命令:
1.
Select [stream_id] from <FileTable>
2.
Select [stream_id], [name] from <FileTable> with (nolock)
3.
Select [Stream_id], [name], file_stream.GetFileNamespacePath(0) as ntfsPath from <FileTable> with (nolock)
我必须使用with(nolock)
. 如果有人打开了诸如 word 文档之类的文件,而我没有使用“NOLOCK”,则 SQL 只返回一些记录,然后捕获到特定记录中,之后不会返回任何记录。然而,数字 1 和 2 返回结果,但数字 3 没有,因为file_stream.GetFileNamespacePath(0)
. 如果我省略file_stream.GetFileNamespacePath(0)
,则 SQL 返回结果。有什么问题GetFileNamespacePath()
?我是否错过了文件流配置或Select
命令使用中的某些内容?