运行xp_dirtree时,它似乎没有读取某些目录。
有什么建议吗?我想知道它是否是某种许可的东西?虽然我的问题被标记为另一个问题的可能重复,但这个问题对我来说是难以理解的 - 我不知道它实际上是在告诉我如何解决这个问题。
我正在运行Windows 10并使用Microsoft SQL Server 2014
USE MyDatabase;
DECLARE @files TABLE (FileName varchar(max), depth int, IsFile int)
--INSERT INTO @files EXEC xp_dirtree 'C:\', 1,1 -- works
--INSERT INTO @files EXEC xp_dirtree 'C:\Temp' , 1,1 -- does not list anything
--INSERT INTO @files EXEC xp_dirtree 'C:\Users' , 1,1 --works
--INSERT INTO @files EXEC xp_dirtree 'C:\Users\Default' , 1,1 --Works
--INSERT INTO @files EXEC xp_dirtree 'C:\Program Files\Microsoft SQL Server\', 1,1 --works
--INSERT INTO @files EXEC xp_dirtree 'C:\Users\Donald' , 1,1 --Does not list anything
答案 0 :(得分:1)
我认为你不能用xp_dirtree,但你可以用xp_cmndshell轻松一点。此示例来自“SQL Journey”博客:
DECLARE @FileList TABLE(FileNumber INT IDENTITY, FileName VARCHAR(256))
DECLARE @path VARCHAR(256) = 'dir c:\Temp'
DECLARE @Command varchar(1024) = @Path + ' /A-D /B'
INSERT INTO @FileList
EXEC master.dbo.xp_cmdshell @Command
SELECT *
FROM @FileList;