我有 .sql 文件,其中包含 1200000 个插入命令。
当我通过在 SQL SERVER MANAGEMENT 中打开执行时,它显示
Insufficient memory to continue the execution of program
我想直接执行命令提示符,但遇到问题尝试了这个sqlcmd -d database Name -i fileName.sql
请帮忙。
最佳答案
我的建议是
- 首先将文件导入数据库
- 将每个语句作为动态 SQL 语句运行
对于第 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 包
并尝试将文件导入到表中。
第 2 步
最后,一旦插入语句进入表中,就循环该表以使用 BEGIN TRANSACTION
和 COMMIT
语句执行插入语句。
您需要在 EXEC
或 sp_executesql
的帮助下使用动态 SQL 执行语句。以下链接将指导您进行相同的操作。
http://www.mssqltips.com/sqlservertip/1160/execute-dynamic-sql-commands-in-sql-server/
希望这有帮助
关于sql - 如何插入 .sql 文件中的 120 万条插入命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22400107/