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