Inserting Multiple Rows in Sybase ASE

30,650

Solution 1

Sybase doen't have insert syntax as SQL Server. What's wrong with showed below classic method?

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

Solution 2

try this:

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

I know this works on older versions of SQL server, and suspect that it will work with sybase.

Solution 3

Looks like that syntax is not valid in Sybase ASE but as suggested in the linked SO post you can get the same using UNION ALL like

INSERT INTO MyTable (Name, ID)
SELECT 'First',1
UNION ALL
SELECT 'Second',2
UNION ALL
SELECT 'Third',3
Share:
30,650
user2436815
Author by

user2436815

Updated on June 24, 2020

Comments

  • user2436815
    user2436815 about 4 years

    (Similar question related to SQL Server : SO Link)

    I know in Sql Server 2008 or above, you can insert multiple rows doing the following:

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

    However, it seems like this syntax DOES NOT work in Sybase Adaptive Server Enterprise, since this gives me an error..

    Anyone know the syntax in Sybase that achieves the same thing?

    Sybase ASE is based on Transact SQL..

    Thanks

  • broetchen
    broetchen about 8 years
    What's "wrong", or better inconvenient, is that you have to keep repeating INSERT INTO MyTable (Name, ID) VALUES
  • Joel
    Joel about 7 years
    this works, also, it works with parameterized values: ...select ?,? union all...
  • Robert
    Robert about 7 years
    @Joel What is your Sybase version?