在存储过程中定义变量,
declare @bl int outputOUTPUT
表明参数是返回参数。该选项的值可以返回给 EXEC[UTE]。使用 OUTPUT 参数可将信息返回给调用过程。Text、ntext 和 image 参数可用作 OUTPUT 参数。使用 OUTPUT 关键字的输出参数可以是游标占位符。
declare @bl int outputOUTPUT
表明参数是返回参数。该选项的值可以返回给 EXEC[UTE]。使用 OUTPUT 参数可将信息返回给调用过程。Text、ntext 和 image 参数可用作 OUTPUT 参数。使用 OUTPUT 关键字的输出参数可以是游标占位符。
... ...
假设a是主键,insert 完成后:
select @b=b from table1 where a=@a --@a应是存储过程的接收参数。
必须有个主键。
我对这个select 语句不太懂,为何是 where a = @a ,本来@a是一个接受参数,为何能够作为查询条件呢,我如何才能定位到当前插入的行的位置呢?
多谢!
select @b=b from inserted
假设identity字段是id
insert into table1(a) values('Hello')
select b from table1 where id=@@identity
我在执行select @b=b from inserted 后的返回结果是:
Invalid object name 'inserted'.
我该咋办呢?
另外,我要求得到的这个值不是identity域段。谢了!
Invalid object name 'inserted'。
还是照我或seafo(海之牙)的办吧!
多谢!
create table #tt(k int);
insert into #tt values(null);----
触发器中
.............
update #tt set k=i.b;
..............
------------
过程中
select @b=k from #tt;