日期:2014-05-18  浏览次数:20576 次

高手看看这个存储过程怎么写?
table1结构如下:
id   int,--自增变量
index   int   ,
flag   int


我在程序中这样操作:
首先获取满足flag值的index的最大值
Select   Max(index)   from   table1   where   flag   =   2;//flag值是输入值

如果上条语句执行结果行数等于1,我就把获取的值放在程序变量int   index中,否则令index   =   0
index   ++;

然后执行如下语句
sqlstring   =   sprintf( "Insert   into   table1(index,flag)values(%d,2) ",index);//使用index的值插入一行

请问,我如果要通过一条存储过程来完成上面的操作该怎么写?存储过程接收参数flag

                                                                谢谢!



------解决方案--------------------
Create proc procname(@flag int)
as
Insert into table1([index],flag)
Select IsNULL((Select max([index]) from table1 where flag = @flag),0)+1,@flag
go