• My problem is that I expected that "inserted" would be a complete copy of the inserted row (I haven't used OUTPUT, but triggers certainly work that way). As such, the Inserted.* should return 2 columns, but the insert list only contains one field. See the code below and the resulting error message. This is almost exactly the same construct.

    I'll do some research, but it appears that Output is only returning the "explicitly added" columns?

    BTW, generically, I'm opposed to * for this very reason!

    Declare @Foo Table

    (

    ID int,

    String varchar(100)

    )

    Insert into @Foo(String)

    Select * from

    (Select 1 as intval, 'sample1' as string

    union all

    Select 2 as intval, 'sample2' as string

    ) as bar

    Msg 121, Level 15, State 1, Line 7

    The select list for the INSERT statement contains more items than the insert list. The number of SELECT values must match the number of INSERT columns.