2015-10-13 74 views
0

我想导入一个大的.SQL文件(012mb)(210mb)包含邮政编码postcodelatlng表中。这是设置: enter image description hereSQLCMD导入大型sql文件给出“无效的对象名称”错误

我试着直接在SSMS 2012执行查询,但它是抱怨缺乏内存。

进一步阅读,指着我使用SQLCMD,在那里我试图使用命令工具:

C:\Windows\system32>sqlcmd -S (LocalDB)\v11.0 -i D:\Ben\Desktop\ukpostcodesmssql_1.sql 

但是,这将引发我这个错误:

Msg 208, Level 16, State 1, Server BEN-PC\LOCALDB#850F4379, Line 1 Invalid object name 'postcodelatlng'. 

我猜它只是不正确到达该表。我相信这可能是一个菜鸟的错误,但我一直无法解决它。

+0

您是否有权使用导入/导出向导? SSIS? – JiggsJedi

+0

@JiggsJedi是的,我可以访问导入/导出wjzard。不确定SSIS是什么,但我会尽快回复你 – gudthing

+0

两者都可以加载大型数据文件没有问题。如果您不熟悉SSIS,导入/导出向导是最好的选择。这将用于加载CSV(原始数据),而不是.SQL(命令)文件。 – JiggsJedi

回答

0

.SQL文件是纯文本文件。使用文本编辑器打开它(我推荐NotePad ++),然后复制&将这些命令部分粘贴到SSMS中并逐步执行,直到您加载了所有记录。

+1

我确实找到了一种方法来直接拆分[SQL文件](http://www.rusiczki.net/2007/01/24/sql-dump-file-splitter/)(而不是复制和粘贴)。但是,必须有更好的方法,比手动复制和粘贴/导入50个更小的文件... – gudthing

+0

使用'Go To'命令抓取一批'INSERTs'。在NotePad ++中,您可以在“搜索”菜单下找到它 – Morpheus

+0

我认为“更好”的方式是加载实际数据而不是使用脚本,但我认为您有使用.SQL代替.CSV的原因。 – Morpheus

0

您是否需要指定数据库名称? (-d db_name)。您的命令仅查找指定服务器和sql脚本文件。

+0

我刚刚尝试指定数据库名称:'C:\ Windows \ system32> sqlcmd -S(LocalDB)\ v11.0 -d postcodelatlng -i D:\ Ben \ Deskto p \ ukpostcodesmssql_1.sql'给我这个 Sqlcmd:错误:Microsoft SQL Server Native Client 11.0:登录失败,用户' Ben-PC \ Ben'.. Sqlcmd:错误:Microsoft SQL Server Native Client 11.0:无法打开数据库“p ostcodelatlng”由登录请求。登录失败。# PC没有密码,但我会尝试查看凭据标志并查看是否取消了对其的阻止 – gudthing

相关问题