2015-10-13 72 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

相關問題