I see the Intended behaviour of OUTPUT Clause should be:
Even If Insert/Update/Delete/Merge Fails OUTPUT Clause will return result nad hence user should be care full while using that result set.
But I am not able to replicate this on sql 2008R2. my insert fails and OUTPUT Clause retuns nothing.
I am using following SQL Server Version:
Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1
Developer Edition(Build 2600: Service Pack 3)
I have also Old SQL 2005 Instance I Upgraded from.
O that Instance this was workin fine and returning first 2 rows as expected.
My 2005 insatnce is following
Microsoft SQL Server 2005 - 9.00.3310.00
Enterprise Edition (Build 3790: Service Pack 1)