【问题标题】:Inserting large number of records into SQL Server将大量记录插入 SQL Server
【发布时间】:2018-01-15 12:37:56
【问题描述】:

我有大量的记录必须插入到 SQL Server 数据库中。必须插入大约 100 万条记录。

我通过运行这个简单的 bat 脚本来做到这一点:

ECHO %TIME%
sqlcmd -S "SQLSERVER" -i "C:\Users\name\Desktop\OutPut\Result 
tblAccount.sql"
ECHO %TIME%
Pause

但是一旦我运行脚本,我就会收到以下错误:

您的 SQL 语句的某些部分嵌套得太深。重写查询或将其分解为更小的查询

有什么办法可以插入这么多记录吗?

我有 SQL Server 2014 开发人员版。

通过添加我正在运行的查询来编辑问题

IF NOT EXISTS (SELECT * FROM [dbo].[tblAccount] 
               WHERE [AccountID] = 117242 
                 AND [TimeStamp] = CAST(N'2013-01-16 05:53:50.490' AS DateTime)) 
BEGIN
    INSERT INTO [dbo].[tblAccount] ([AccountID], [Name], [Comment],[IsMachine],
                                    [UserID], [Prefix], [Action], [Initials],
                                    [Name], [TimeStamp], [Reason], [Iscal]) 
    VALUES (117242, 'blabla', 'The users project)', 1, 
            'val', 39, 'val', 'blabla',
            'blabla', CAST(N'2013-01-16 05:53:50.490' AS DateTime), 'NORMAL', '0')
END

【问题讨论】:

  • 该错误与您尝试插入的记录数无关,但与 tblAccount.sql 脚本中的 INSERT 查询有关。如果您不与解释一起分享,那么我们将无能为力
  • 我必须不同意你的观点,因为当我使用少量记录运行脚本时,它运行良好。但它的所有记录都失败了

标签: batch-file sql-server-2014 multiple-records


【解决方案1】:

根据此连接项,这似乎与 2012 年(在 SP2 中修复)和 2014 年(在 SP1 中修复)中的一个错误有关, https://connect.microsoft.com/sqlserver/feedback/details/805659/sql-statement-is-nested-too-deeply-

【讨论】:

  • 这根本没有帮助。我确实按照建议安装了 Service Pack 1 和 SP2,但它根本没有帮助。我仍然得到同样的错误,没有任何改变。我将继续寻找其他解决方案/解决方法
猜你喜欢
  • 2016-03-14
  • 1970-01-01
  • 2015-12-17
  • 2016-06-02
  • 1970-01-01
  • 2012-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多