sql - 使用 SSMS 将 1000 行插入 SQL 表

标签 sql sql-server-2008 ssms

我有一个带有插入语句的 sql 脚本来插入 1000 行(大约 12000)。
当我尝试在 SSMS 中运行脚本时,它会在一段时间后抛出“内存不足”异常。

"An error occurred while executing batch. Error message is: Exception of type 'System.OutOfMemoryException' was thrown."

我在 Vista 上安装了 SQL Server 2008,内存为 3gb。

任何想法或指示将不胜感激!

最佳答案

您将不得不拆分命令。最简单的方法是每 10 行左右添加一个 GO。

基本上,SSMS 试图将所有文本加载到 中。单例 SqlCommand.CommandText 并执行它。那行不通。

你需要得到它来批量处理它们。 GO 是 SSMS 中的一个简单拆分点,它将占用该点并执行它,然后继续。

LINE1LINE2
...



LINE11LINE12

这将在 2 个 SqlCommands 中运行到数据库。
如果您需要它们都在单个事务中运行,您可能必须编写一个命令行应用程序来加载每一行并在事务中执行它。我认为您不能在 SSMS 中跨执行拆分事务。

您也可以构建一个 SSIS 包,但这是很多工作,我不推荐它,除非您需要经常重复此过程。

关于sql - 使用 SSMS 将 1000 行插入 SQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1795074/

相关文章:

SQL - 将两列合并成一个逗号分隔的列表

sql-server - 如何使用 Visual Studio 的 Git 源代码管理提供程序对 SQL Server 数据库进行版本控制

mysql - 如何让这个 SQL 查询更加优雅?

mysql - 检测同一查询中数据库和表是否存在

php - 如何根据 MySQL 和 PHP 中的用户权限创建两个不同的 session

sql-server - sql server Management Studio 代码完成

sql-server - 在 Management Studio 2005 中编写所有存储过程的脚本

sql - Oracle SQL Select 上的小数精度

sql - 检查添加后的任何结果组合是否等于变量

sql - 附加 MDF 文件而不使用 LDF 文件