在存储过程中取得刚刚插入的记录的某个字段,将其输出,由C#接受OUTPUT返回参数

表Table_T,主键MainID为int自增,有一字段Test。要在存储过程中取得新插入记录的字段Test值,并将其输出。

获得新记录某字段有两种方法:

1、所需字段为非标识字段

 

[sql] view plaincopy

  1. declare @returnValue [nvarchar](50)
  2. –向表中插入一行数据
  3. insert into Table_T(Test) values (‘Test’)
  4. –获取新插入数据行MainID
  5. set @returnValue =(select top 1 Test from Table_T order by MainID desc)
  6. –将MainID输出
  7. select @returnValue Output

2、所需字段为标识字段,使用select  IDENT_CURRENT(“表名”)

 

 

[sql] view plaincopy

  1. declare @returnValue [nvarchar](50)
  2. –向表中插入一行数据
  3. insert into Table_T(Test) values (‘Test’)
  4. –获取新插入数据行MainID
  5. set @returnValue =(select IDENT_CURRENT(‘Table_T’))
  6. –将MainID输出
  7. select @returnValue Output

由接收OUTPUT返回值:

 

 

[csharp] view plaincopy

  1. cmd.Parameters.Add(“@ReturnValue”,SqlDbType.NVarChar,50);
  2. cmd.Parameters[“@ReturnValue”].Direction = ParameterDirection.Output;
  3. cmd.ExecuteNonQuery();
  4. string returnValue = cmd.Parameters[“@ReturnValue”].Value.ToString();

 

 

标签