这个例子在MSSQL 2005中确实很好用…
SET ANSI_NULLS onGOSET QUOTED_IDENTIFIER ONGODROp TABLE [dbo].[TEST_TABLE]GOCREATE TABLE [dbo].[TEST_TABLE]( [id] [int] IDENTITY(1,1) NOT NULL, [name] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, ConSTRAINT [PK_TEST_TABLE] PRIMARY KEY CLUSTERED ( [id] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]-- An insert which will return the identityINSERT INTO [dbo].[TEST_TABLE] ([name]) OUTPUT inserted.idVALUES('Test 1')-- Another insert which will return the identityINSERT INTO [dbo].[TEST_TABLE] ([name]) OUTPUT inserted.idVALUES('Test 2')-- Now an update which will return the identityUPDATE [dbo].[TEST_TABLE]SET [name] = 'Updated Test 1'OUTPUT inserted.idWHERe [name] = 'Test 1'SELECT id, [name] FROM [dbo].[TEST_TABLE]更具体地说是您的查询…
update myTableset myCol = 'foo'output inserted.itemidwhere itemId in (select top 1 itemId from myTable )



