I'd like to sort the rows returned by an UPDATE statement, but there's no direct way to do this according to the [msdn page for the OUTPUT Clause](http://msdn.microsoft.com/en-us/library/ms177564(SQL.90).aspx), which says:

> 
> SQL Server does not guarantee the order in which rows are processed and returned by DML statements using the OUTPUT clause.
> 
> 
> 

Since I can't just tack "order by" onto my original query, my next approach is to just put the results into a temporary table or table variable, and then select and order from that. I should be able to figure out a solution using temporary tables, but I don't think I've ever used a table variable before. Is there a reason to prefer one over the other in this context? Or is there a better way to get sorted results from an OUTPUT clause (i.e. w/out using a temp table or table variable)?

The DB platform is SQL Server 2005.

Here's the original query; I want to sort on the ReleaseDate field.

```
Update dbo.WFItem
Set ApprovedDate = getdate()
Output inserted.WFItemID, inserted.Title, inserted.Teaser
Where ApprovedDate is null

```

The table it runs against looks something like this:

```
CREATE TABLE [dbo].[WFItem](
    [WFItemID] [int] IDENTITY(1,1) NOT NULL,
    [Title] [varchar](255) NULL,
    [Teaser] [varchar](255) NULL,
    [ReleaseDate] [datetime] NULL,
    [ApprovedDate] [datetime] NULL,
    [SentDate] [datetime] NULL,
 CONSTRAINT [PK_WFItem] PRIMARY KEY CLUSTERED 
(
    [WFItemID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, 
 ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

```