【问题标题】:multi-Insert using sqlsrv_query使用 sqlsrv_query 进行多插入
【发布时间】:2016-07-13 16:55:08
【问题描述】:

下面的代码旨在将 n 行插入到表中。但是,对于所有 n >=108,它只能插入 108 行。适用于 n

    $data = "a1='1', a2='2', a3='3', a4='4', a5='5', a6='6'";
    $queryInsert = 
    "   SELECT $data INTO [$tableName]
        DECLARE @i int
        SET @i=1
        WHILE (@i < $n)
        BEGIN
            INSERT [$tableName]
            SELECT $data
            SET @i = @i + 1
        END
    ";
    $stmt1 = sqlsrv_query($conn1, $queryInsert);

编辑:PHP7,驱动版本:4

【问题讨论】:

  • 我想问你为什么首先使用这样的循环来插入数据。
  • @SeanLange,我不小心通过添加 sleep (1) 解决了这个问题;在 sqlsrv_query 之后。你知道为什么会发生这种情况吗?
  • 不知道为什么会“修复”它。您应该考虑使用数字或计数表,而不是像这样循环。它会简单得多。 sqlservercentral.com/articles/T-SQL/62867

标签: php sql-server sql-insert sqlsrv


【解决方案1】:

显然这现在有效。不知道为什么。

$data = "a1='1', a2='2', a3='3', a4='4', a5='5', a6='6'";
    $queryInsert = 
    "   SELECT $data INTO [$tableName]
        DECLARE @i int
        SET @i=1
        WHILE (@i < $n)
        BEGIN
            INSERT [$tableName]
            SELECT $data
            SET @i = @i + 1
        END
    ";
    $stmt1 = sqlsrv_query($conn1, $queryInsert);
    sleep ( 1 );

【讨论】:

    猜你喜欢
    • 2016-01-02
    • 2016-09-15
    • 2012-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2018-06-10
    • 1970-01-01
    相关资源
    最近更新 更多