高手看看这个存储过程怎么写?
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