我是SQL Server的新手。
我正在尝试使用SQL Server Management Studio (2005)中的命令对表进行大容量插入:
使用(FIELDTERMINATOR = '|')从'c:\text.txt‘大容量插入Table1
我得到了错误:
Msg 4860,Level 16,State 1,Line 1无法批量加载。文件"c:\text.txt“不存在。
我敢肯定这个文件确实存在。
我感觉它是在本地硬盘上查找文件,无论服务器在哪里。真的是这样吗?如果是这样,你一般是如何解决这个问题的?(请注意,在输入文本文件的位置时,我尝试指定我的PC的网络地址,但得到一个权限错误。此外,我事先知道我的公司不允许将文件放在服务器上)。
发布于 2009-09-15 21:20:57
您是否在您的计算机上创建了服务器可以看到的共享驱动器?如果是这样,那么您只需引用包含计算机名称的路径,而不是C:
发布于 2009-09-28 14:13:42
SQL Server没有从客户端读取数据的SQL语句(正如其他发布者所指出的那样)。其他RDBMS产品也实现了这一点(例如,Postgres COPY语句允许您指定服务器上的文件或客户端上由客户端的数据库连接库读取的文件)。
您可以使用bcp命令行程序将数据从客户端上的文件移动到SQL Server上的表。
bcp允许您将数据从本地文件复制到服务器上的表,或从服务器上的表(或选择查询)复制到本地文件。例如:
bcp servername.dbname.tablename in c:\temp.txt -T -c将选项卡式分隔文件(temp.txt)复制到指定表中(假设该文件包含正确的列数)。
我不确定这是否有帮助,但这是将数据从客户端文件移动到服务器表的唯一方法,而不允许服务器通过网络访问客户端上的数据文件。
发布于 2009-09-28 14:40:35
我同意这是一个问题,文件在你的C盘上,而不是服务器的驱动器上。
如果是权限问题,您是否尝试过在您的工作站上创建服务器有权读取的文件共享?也许类似于\YourWorkstation\SQLFile,然后授予everyone (或Guest,取决于您的网络权限设置)对它的读取访问权限?
如果您无法在笔记本电脑上创建共享,或者由于某种原因无法授予访问权限,那么在办公室的某个位置是否存在您有权访问且SQL也可以读取的文件共享?可能是NAS或"Common“网络文件夹?
https://stackoverflow.com/questions/1428059
复制相似问题