我尝试运行以下操作,将文本文件中的大量销售数据导入数据库。当我运行以下操作时,我收到错误:“无效的对象名称'PetDatabase.Sales'
BULK INSERT PetDatabase.Sales
FROM 'C:\Temp\P1.txt'
WITH
(
FORMATFILE = 'C:\Temp\PetSales.Fmt'
);
任何人都能看到导致我问题的原因吗?我确实在一个文件夹中有表格;但是,当我尝试PetsDatabase.Tables.Sales时,没有任何区别。
答案 0 :(得分:2)
忽略这个答案。它是在问题标记为mysql
时编写的。在这里留下答案以保留评论。
-
请尝试使用LOAD DATA INFILE
。
答案 1 :(得分:0)
确保文本文件中存在PetDatabase.Sales。
切换您正在使用的行和字段终止符分隔符。这里我使用逗号分隔文件中的分隔符
BULK INSERT PetDatabase FROM'c:\ temp \ p1.txt' WITH ( FIELDTERMINATOR =',', ROWTERMINATOR ='\ n' ) 走 - 检查表格的内容。 选择 * 来自PetDatabase 走 - 删除表以清理数据库。 选择 * 来自PetDatabase GO
另外,请确保以下内容不适用于您:
如果SQL Server用户使用Windows身份验证登录,则用户只能读取用户帐户可访问的文件,而与SQL Server进程的安全配置文件无关。
使用sqlcmd或osql执行BULK INSERT语句时,从一台计算机上,在第二台计算机上将数据插入SQL Server,并使用UNC路径在第三台计算机上指定data_file,可能会收到4861错误。 / p>
要解决此错误,请使用SQL Server身份验证并指定使用SQL Server进程帐户的安全配置文件的SQL Server登录,或配置Windows以启用安全帐户委派。
答案 2 :(得分:0)
PetDatabase是模式名称还是数据库名称? 如果它是数据库名称,那么如果您的模式名称是dbo,则包括模式名称。
PetDatabase.dbo.Sales