这里将该功能写成了一个存储过程,
本来只写Insert的话,返回1,即影响的行数,该数据没太大应用意义。
想在Insert的基础上,返回新添加的这条数据的ID,两种方法:
1 .添加第17行的Select @@identity; 就可以了(因为这里是把ID设为了主键自增)。
1 USE [HumidifyMachine] 2 GO 3 /****** Object: StoredProcedure [dbo].[sp_AddTask] Script Date: 2020/3/8 21:56:59 ******/ 4 SET ANSI_NULLS ON 5 GO 6 SET QUOTED_IDENTIFIER ON 7 GO 8 9 ALTER procedure [dbo].[sp_AddTask] 10 @ChamberName varchar(20), 11 @BufferName varchar(20), 12 @HumidifyBoxCode varchar(20) 13 as 14 begin 15 Insert into T_Task (Status, ChamberName, BufferName, HumidifyBoxCode, BlueAreaDetectTime) 16 values (10, @ChamberName, @BufferName, @HumidifyBoxCode, GETDATE()); 17 Select @@identity; 18 end
2. 将上述代码的第15-17行替换为下面代码,使用OUTPUT输出制定的字段,OUTPUT Inserted.ID ,这种方法比较通用,不止能输出ID。
1 Insert into T_Task (Status, ChamberName, BufferName, HumidifyBoxCode, BlueAreaDetectTime) 2 OUTPUT Inserted.ID values (10, @ChamberName, @BufferName, @HumidifyBoxCode, GETDATE());