【问题标题】:Inserting Multiple Rows in Sybase ASE在 Sybase ASE 中插入多行
【发布时间】:2014-08-29 09:29:36
【问题描述】:

(与 SQL Server 相关的类似问题:SO Link

我知道在 Sql Server 2008 或更高版本中,您可以执行以下操作插入多行:

INSERT INTO MyTable (Name, ID)
VALUES ('First',1), ('Second',2), ('Third',3)

但是,这种语法似乎在 Sybase Adaptive Server Enterprise 中不起作用,因为这会给我一个错误..

有人知道 Sybase 中实现相同功能的语法吗?

Sybase ASE 基于 Transact SQL..

谢谢

【问题讨论】:

    标签: sql sql-server database tsql sybase


    【解决方案1】:

    试试这个:

    INSERT INTO MyTable (Name, ID)
    Select 'First',1
    Union All 
    Select 'Second',2
    Union All
    Select 'Third',3
    

    我知道这适用于旧版本的 SQL Server,并怀疑它适用于 sybase。

    【讨论】:

    • 这也适用于参数化值: ...select ?,?联合所有...
    【解决方案2】:

    看起来该语法在 Sybase ASE 中无效,但正如链接的 SO 帖子中所建议的,您可以使用 UNION ALL like 获得相同的结果

    INSERT INTO MyTable (Name, ID)
    SELECT 'First',1
    UNION ALL
    SELECT 'Second',2
    UNION ALL
    SELECT 'Third',3
    

    【讨论】:

      【解决方案3】:

      Sybase 没有 SQL Server 那样的插入语法。下面显示的经典方法有什么问题?

      INSERT INTO MyTable (Name, ID) VALUES ('First',1)
      INSERT INTO MyTable (Name, ID) VALUES ('Second',2)
      INSERT INTO MyTable (Name, ID) VALUES ('Third',3)
      go
      

      【讨论】:

      • 什么是“错误”,或者说更不方便的是,你必须不断重复INSERT INTO MyTable (Name, ID) VALUES
      • @Joel 您的 Sybase 版本是多少?
      【解决方案4】:

      此示例在 SQL Server 中的语法在 Sybase 中不起作用。要么使用单独的语句,要么使用 UNION ALL 子句

      【讨论】:

        猜你喜欢
        • 2013-05-29
        • 1970-01-01
        • 2020-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多