繁体   English   中英

批量插入文件夹中的多个文件

[英]Bulk insert multiple files inside a folder

对于Stack那些曾经一次又一次帮助我的优秀人员……我正在尝试为文件夹中的所有文件运行批量插入例程。 这是我的方法,但是我似乎遇到了一条路障,并显示一条消息:“在我的select语句中拒绝访问”

EXEC [dbo].[procReadFolder] 'C:\Users\ABC\Downloads\NYSE_2015'

我具有对所有文件夹和文件的管理员访问权限,因此不确定下一步。

请参阅下面的逻辑:

ALTER procedure [dbo].[procReadFolder] @path sysname
as
begin
set nocount on

declare @dirContent table(
id int identity(1,1),
FileName sysname NULL
)
declare  @cmd nvarchar(512)
set @cmd = 'DIR /b ' + @path

insert into @dirContent
exec master..xp_cmdshell @cmd

select * from @dirContent

-- Code to Loop through all the records in the file
-- To be written

-- Routine that takes the file name as a parameter and inserts the file
EXEC [dbo].[BulkInsert] 'Path'

end

结果集:

1   Access is denied.
2   NULL

您将需要确保运行SQL Server服务的帐户有权访问特定路径。

该存储过程是在配置为运行SQL Server服务的帐户的安全上下文下执行的,因此,该帐户将需要被授予对驱动器上的文件夹的权限。

我将SQL服务帐户更改为另一个用户帐户“ SQLService”,而不是默认的NT / MSSQLServer帐户,它可以正常工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM