存储过程判断记录是否存在
㈠ 用存储过程循环判断传进来的数组中的某一项在数据中是否存在
sql">createprocereoap_dect(
inoutp_arrayvarchar(255),#通过(,)分隔符传递数组
outp_resultvarchar(255)#返回信息
)
begin
declarev_douhaoint(10)default0;
declarev_resultint(10)default0;
declarev_countint(10)default0;
declarev_datavarchar(255)default'';
declarev_data_infovarchar(40)default'';
setv_douhao=instr(v_data,',');
while(v_douhao>=1)
do
setv_count=v_count+1;
setv_data_info=substring(v_data,1,v_douhao-1);
selectcount(*)
intov_result
fromtable_name
wherefield_name=v_data_info;
setp_result=p_result+1;
setv_data_str=substring(v_data,v_douhao+1);
setv_fenhao=instr(v_data_str,',');
endwhile;
if(p_result<v_count)
setp_result=false;
else
setp_result=true;
endif;
end
㈡ Oracle存储过程验证一个记录是否存在怎么写
select count(*)
into ...
from ..
where ...
判断一下就是了,
或者有游标打开并fetch一次,判断
curXXX%found
㈢ 如何在存储过程中判断ID=某个值的数据是否存在,在.net程序中获取存储过程返回的值
存储过程
create proc UP_CheckUser
(
@col_id int,
@Result int output
)
as
begin
begin try
select * from 表名 where col_id=@col_id
if(@@rowcount=0)
begin
select @Result=1
end
else
begin
select @Result=0
end
end try
begin catch
select @Result=0
end catch
end
go
后台文件:
SqlParameter[] sp = new SqlParameter[2];
sp[0] = new SqlParameter("@col_id", col_id);
sp[1] = new SqlParameter("@Result", SqlDbType.Int);
sp[1].Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery(CommandType.StoredProcere, "CheckUser", sp);
int nResult = Convert.ToInt32(sp[1].Value);
if (nResult == 0)
{
return 0;
}
else
{
return 1;
}
希望能对你有点用
㈣ 如何判断存储过程是否存在
直接右键,如果没有edit,view等选项,那么这个过程肯定不存在,或者create一个和这个存储过程同名的过程,如果报错,说明已经存在。
㈤ sql存储过程 如何用IF来判断变量表内数据是否存在
可以定义一个变量接收值
declare @A as varchar(max),@count integer
select @A='select @count = count(*) from '+ @变量表 + ' where 姓名='+@姓名
exec(@A)
if @count > 0
...
㈥ 建立一个存储过程 需要把查到的数据插入到进去 并且判断插入的数据是否存在 如果存在就不再插入。求语句
设表A(ID number),存储过程如下:
create or replace procere P_insert(V_ID in number) as
i number:=0;
begin
select count(*) into i from A where ID=V_ID;
if i=0 then
insert into A values(V_ID);
end if;
commit;
end;
㈦ 创建存储过程的时候,如何判断记录集是否为空
If not exists(SELECT UserName,Password,Flag,Lastlogin,LastIP,Logincount,Locked
FROM admin
WHERE AdminID = @adminid )
RETURN "该管理员ID在数据库中不存在!"
--end if
END
记得好像没有end if 不知道搂住用的什么数据库
-------
我给你一个传参的例子吧
不过,返回整条的纪录你需要有足够多的参数(就是你想要的结果的参数)
create procere proc_test
@p1 int = 0,
@p2 int output
as
select @p2 = @p2 + @p1
go
declare @p2_output int
set @p2_output=6
execute proc_test 1, @p2_output output
select @p2_output
go
不明白的地方搂住可以留信息