[英]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.