如果sql服务的启动用户默认为 local system, 使用Bulk Insert 命令从一个共享地址读取文件,会报如下错误:
"未能进行大容量插入,因为未能打开文件 '\\PC1\Dir1\1.txt'。操作系统错误代码 5(拒绝访问。)。"
我想问一下,有没有办法在不改变sql服务启动用户的前提下,读取这个文件。。
"未能进行大容量插入,因为未能打开文件 '\\PC1\Dir1\1.txt'。操作系统错误代码 5(拒绝访问。)。"
我想问一下,有没有办法在不改变sql服务启动用户的前提下,读取这个文件。。
'net use \\PC1\Dir1 "密码" /user:PC1\administrator'
添加网络映射
下边是我的代码
CREATE TABLE [#DATA] ([LINE_DATA] [VARCHAR] (8000),) exec('BULK INSERT #data FROM ''\\172.20.2.101\Share\tt.txt'' WITH ( FIELDTERMINATOR = ''\n'', ROWTERMINATOR = ''\n'' )') select * from #DATA drop table #DATA
exec master..xp_cmdshell 'net use \\172.20.2.101\Share /delete'
select * from #DATA drop table #DATA
这里边的administrator和密码是172.20.2.101的用户名和密码吗?
恩,,,不一定是administrator能独这个文件的内容就可以
exec master..xp_cmdshell 'net use \\172.20.2.101\Share "密码" /user:172.20.2.101\administrator' CREATE TABLE [#DATA] ([LINE_DATA] [VARCHAR] (8000),)
exec('BULK INSERT #data FROM ''\\172.20.2.101\Share\tt.txt'' WITH ( FIELDTERMINATOR = ''\n'', ROWTERMINATOR = ''\n'' )')
exec master..xp_cmdshell 'net use \\172.20.2.101\Share /delete'
select * from #DATA drop table #DATA