Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8963837
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 15, 20262026-06-15T16:26:49+00:00 2026-06-15T16:26:49+00:00

Example tables for SQL Server. MainRecords ( id, record ) AuxRecords ( mainRecords_id, record

  • 0

Example tables for SQL Server.

  • MainRecords (id, record)
  • AuxRecords (mainRecords_id, record)
  • SourceRecords (record1, record2)

MainRecords.id is a self incrementing primary identity key.

Is it possible to select from SourceRecords and insert into MainRecords and AuxRecords at the same time such that MainRecords.record = record1, AuxRecords.record = record2, and AuxRecords.mainRecords_id = MainRecords.id all in a single statement?

EDIT:

Based on tip from below, I tried this…

DECLARE @MainRecords table(id int PRIMARY KEY IDENTITY, record varchar(5))
DECLARE @AuxRecords table(mainRecords_id int, record varchar(5))
DECLARE @SourceRecords table(record1 varchar(5), record2 varchar(5))

INSERT @SourceRecords VALUES ('a', 'a')
INSERT @SourceRecords VALUES ('a', 'b')
INSERT @SourceRecords VALUES ('a', 'c')
INSERT @SourceRecords VALUES ('b', 'a')
INSERT @SourceRecords VALUES ('b', 'b')
INSERT @SourceRecords VALUES ('b', 'c')
INSERT @SourceRecords VALUES ('c', 'a')
INSERT @SourceRecords VALUES ('c', 'b')
INSERT @SourceRecords VALUES ('c', 'c')

INSERT INTO @MainRecords (record)
  OUTPUT inserted.id, @SourceRecords.record2
  INTO @AuxRecords (mainRecords_id, record)
SELECT record1 FROM @SourceRecords

select * from @MainRecords
select * from @AuxRecords

But unfortunately get error:

Msg 137, Level 16, State 1, Line 16
Must declare the scalar variable "@SourceRecords".

If I change those table type variables into real tables I get the error:

Msg 4104, Level 16, State 1, Line 3
The multi-part identifier "SourceRecords.record2" could not be bound.

Below works fine, but obviously it isn’t a complete solution. I’m just showing it to demonstrate that my syntax is correct.

INSERT INTO @MainRecords (record)
  OUTPUT inserted.id --, @SourceRecords.record2
  INTO @AuxRecords (mainRecords_id) --, record)
SELECT record1 FROM @SourceRecords

So… unless there is some trick I am missing, it seems like OUTPUT is a dead end solution for this problem.

The other suggestions of creating views or empty tables with triggers are not a “single statement” solution to the problem. Moreover, they add obscurity, whereas adding some extra columns and using a stored procedure is equally complex but more obvious and straightforward.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-15T16:26:51+00:00Added an answer on June 15, 2026 at 4:26 pm

    community wiki

    there isn’t enough info in the question to write code to solve the question. So, here is a “generic” output clause example, which does not relate at all to this question, other than to show how OUTPUT can be used:

    this will delete, insert, and return multiple rows in a single statement

    DECLARE @OldTable table(col1 int, col2    varchar(5), col3 char(5), col4     datetime)
    DECLARE @NewTable table(col1 int, column2 varchar(5), col3 int    , col_date char(23), extravalue int, othervalue varchar(5))
    INSERT @OldTable VALUES (1 , 'AAA' ,'A'  ,'1/1/2010'           )
    INSERT @OldTable VALUES (2 , 'BBB' ,'12' ,'2010-02-02 10:11:22')
    INSERT @OldTable VALUES (3 , 'CCC' ,null ,null                 )
    INSERT @OldTable VALUES (4 , 'B'   ,'bb' ,'2010-03-02'         )
    
    DELETE @OldTable           --<<<alter table 1
        OUTPUT DELETED.col1    --<<<alter table 2
              ,DELETED.col2
              ,CASE
                   WHEN ISNUMERIC(DELETED.col3)=1 THEN DELETED.col3 
                   ELSE NULL END
              ,DELETED.col4
              ,CONVERT(varchar(5),DELETED.col1)+'!!'
            INTO @NewTable (col1, column2, col3, col_date, othervalue)
        OUTPUT 'Rows Deleted: ', DELETED.* --<<<returns a result set
        WHERE col1 IN (2,4)
    
    SELECT * FROM @NewTable
    

    OUTPUT:

                   col1        col2  col3  col4
    -------------- ----------- ----- ----- -----------------------
    Rows Deleted:  2           BBB   12    2010-02-02 10:11:22.000
    Rows Deleted:  4           B     bb    2010-03-02 00:00:00.000
    
    (2 row(s) affected)
    
    col1        column2 col3        col_date                extravalue  othervalue
    ----------- ------- ----------- ----------------------- ----------- ----------
    2           BBB     12          Feb  2 2010 10:11AM     NULL        2!!
    4           B       NULL        Mar  2 2010 12:00AM     NULL        4!!
    
    (2 row(s) affected)
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have got two tables in SQL Server 2005: USER Table: information about user
In my SQL Server databases I group my tables by schema to help organize
In SQL Server 2005/2008, is there some significance to tables that have two leading
I have 2 SQL Server tables with the following structure Turns-time cod_turn (PrimaryKey) time
I have a 1000 tables in the SQL Server Database. If I wanted to
I have like 10 diff temporary tables created in SQL server, what I am
I have to write a component that re-creates SQL Server tables (structure and data)
I have 3 tables in my SQL Server database: Teacher Student Parent Each of
I'm using SQL Server 2005. I have a series of product and pricing tables
I have two tables in two different SQL Server databases on different servers. Each

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.