我有一个包含1200000插入命令的.sql文件。
当我通过在SQL SERVER管理中打开来执行时,它显示
Insufficient memory to continue the execution of program我在考虑直接执行命令提示符,但遇到问题时尝试了此sqlcmd -d database Name -i fileName.sql
请帮帮忙。
发布于 2014-03-14 17:01:51
我的建议是
步骤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的帮助下使用dynamic sql执行语句。下面的链接将指导您进行相同的操作。
http://www.mssqltips.com/sqlservertip/1160/execute-dynamic-sql-commands-in-sql-server/
希望这能有所帮助
发布于 2014-03-14 17:20:02
对于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
)https://stackoverflow.com/questions/22400107
复制相似问题