Home Forums SQL Server 7,2000 General Returning @@IDENTITY from an OPENQUERY INSERT Statement RE: Returning @@IDENTITY from an OPENQUERY INSERT Statement

  • Thank you for your both replies and clarifications.

    But why SQL Server looks like parsing the query provided inside OPENQUERY, though the statement is meant to be executed on the remote server (i.e., Oracle)?

    I have tried different ways, but still getting errors. Here they are:

    using Sequence CURRVAL

    DECLARE @SOMEID BIGINT;DECLARE @QUERY NVARCHAR(MAX) = N'INSERT OPENQUERY(ORACLE_SERVER2, ''SELECT CODE, DESCS, CREATED_BY FROM STORAGE_TYPE'')VALUES(''1234'', ''1234DESC'', ''TESTTEST''); SELECT STORAGE_TYPE_SEQ.CURRVAL INTO @SOMEID FROM DUAL;';EXEC SP_EXECUTESQL @QUERY, N'@SOMEID BIGINT', @SOMEID OUTPUT;SELECT @SOMEID;

    Msg 102, Level 15, State 1, Line 90 Incorrect syntax near '@SOMEID'.

    (1 row(s) affected)


    using RETURNING statement

    DECLARE @SOMEID BIGINT;DECLARE @QUERY NVARCHAR(MAX) =  N'INSERT OPENQUERY(ORACLE_SERVER2, ''SELECT CODE, DESCS, CREATED_BY FROM    STORAGE_TYPE'')VALUES(''1234'', ''1234DESC'', ''TESTTEST'') RETURNING ID INTO @SOMEID';EXEC SP_EXECUTESQL @QUERY, N'@SOMEID BIGINT', @SOMEID OUTPUT;SELECT @SOMEID;

    Msg 102, Level 15, State 1, Line 90 Incorrect syntax near 'RETURNING'.

    (1 row(s) affected)

    Thank you