我有.sql文件,其中包含1200000插入命令。,
当我在SQL SERVER MANAGEMENT中打开它时,它说
Insufficient memory to continue the execution of program
我正在考虑直接执行命令提示符,但面对问题尝试了此sqlcmd -d database Name -i fileName.sql
请帮助。
答案 0 :(得分:2)
我的建议是
第1步
您可以尝试bulk insert,如下所示
BULK INSERT dbo.temp
FROM 'c:\temp\file.txt'
WITH
(
ROWTERMINATOR ='\n'
)
您也可以使用OPENROWSET
之类的
SELECT BulkColumn FROM OPENROWSET (BULK 'c:\temp\mytxtfile.txt', SINGLE_CLOB) MyFile
以下链接提供了更多详细信息
http://www.mssqltips.com/sqlservertip/1643/using-openrowset-to-read-large-files-into-sql-server/
或者如果上述内容无效,您可以创建SSIS package
并尝试将文件导入表格。
第2步
最后,一旦insert语句在表中,循环表以使用BEGIN TRANSACTION
和COMMIT
语句执行insert语句。
您需要在EXEC
或sp_executesql
的帮助下使用动态sql执行语句。以下链接将指导您。
http://www.mssqltips.com/sqlservertip/1160/execute-dynamic-sql-commands-in-sql-server/
希望这有帮助
答案 1 :(得分:2)
对于MySQL
选项1:在ubuntu,linux和mac系统终端命令如下
$ mysql -uuser -p < /path/to/your/file.sql
OR
$ mysql -uuser -p -e "source /path/to/your/file.sql"
选项2:在Windows系统上尝试以下命令
C:\> mysql -uuser -p < H:/path/to/your/file.sql
OR
C:\> mysql -uuser -p -e "source H:/path/to/your/file.sql"
在尝试上述命令之前,需要在服务器或本地计算机上上传文件,命令只从本地服务器接受文件而不是外部路径
从.sql文件导入MsSQL
sqlcmd -S .\SQLEXPRESS -E -i "C:\path\file.sql"
导入.csv文件
BULK INSERT tablename
FROM 'C:\CSVData\filename.csv'
WITH
(
FIRSTROW = 2,
FIELDTERMINATOR = ',', --CSV field delimiter
ROWTERMINATOR = '\n', --Use to shift the control to next row
ERRORFILE = 'C:\CSVDATA\ImportErrorRows.csv',
TABLOCK
)