################ 请教:这种存储过程怎么写?增加一条记录到库中?? 大哥们: 我写了个存储过程,就是增加一条记录到数据库,其实就是增加一个用户到数据库中。我并没有判断数据库是否已经存在这个用户,如果存在就提示或返回一个结果值,再进行判断是否已经有该用户了,请问这样的存储过程语句要怎么写或怎么做???求你们了,最好说详细些,我特笨!就是在删除或增加以前,如何先判断该记录是否已经存在的问题??怎么做???方法不局限一种,谢谢了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一个最近简单的办法就是不在存储里去判断。而在执行存储过程的时候判断是否出现异常。SqlException有一个特定的异常号是表示主键重复的。还有就是在插入前进行判断DECLARE @Count INTSELECT @Count = COUNT(*) From table Where ID = @IDIF(@Count > 0){ RETURN @Count //返回大于0}ELSE{ INSERT ......} CREATE PROCEDURE sysEmpInsert @loginid varchar(50), @password varchar(50), @empid int output, @reason varchar(50) output AS select loginid from mrBase where LoginID = @loginid if (@@RowCount<1) begin ----1 set @reason ='noEmp' end------1 RETURNGO ALTER PROCEDURE UserCreate( @UserID varchar (50))/* ( @parameter1 datatype = default value, @parameter2 datatype OUTPUT )*/AS IF EXISTS ( SELECT ID FROM UserInfo WHERE UserID = @UserID ) SELECT 1 ELSE BEGIN INSERT INTO UserInfo (UserID) VALUES(@UserID) SELECT 0 END RETURN 使用SqlCommand.ExecuteScalar()读出返回值,如果为1则存在用户,0则添加成功 ALTER PROCEDURE UserCreate( @UserID varchar (50))AS INSERT INTO UserInfo (UserID) VALUES(@UserID) if (@@error<>0)select 0 elseselect 1-----插入一条记录,重复时出错 楼上的这位大哥,ALTER 是什么意思???为什么不用Create????谢谢了 还有各位大哥,如何接收存储过程的返回值,如 第一楼的:IF(@Count > 0){ RETURN @Count //返回大于0这个@Count,我怎么接收他的值,怎么写,我很笨,太谢了! ALTER修改吧……建议楼主多看看基础!!-__-! 关于dictionary过大,造成内存溢出的解决方法 同一个console只允许运行一个 由于系统缓冲区不足或队列已满,无法进行Socket连接 关于单击winForms的DataGrid 如何方便JS的书写?? c#应用API函数polygon画图的简单问题,解决就给分 ASP.NET的系统在出现时怎么让系统显示指定的页面?? 水晶报表!自定义导出页面的大小 发布刚开发的软件,求加密方法。 关于get/set和ToString的问题 在应用程序结束之前,垃圾回收器是不是一定会把废弃对象的内存全部回收。----请高手详细回答,多谢。 怎么修改程序的版本信息?
DECLARE @Count INT
SELECT @Count = COUNT(*) From table Where ID = @ID
IF(@Count > 0)
{
RETURN @Count //返回大于0
}
ELSE
{
INSERT ......
}
@loginid varchar(50),
@password varchar(50),
@empid int output,
@reason varchar(50) output
AS
select loginid from mrBase where LoginID = @loginid
if (@@RowCount<1)
begin ----1
set @reason ='noEmp'
end------1
RETURNGO
(
@UserID varchar (50)
)
/*
(
@parameter1 datatype = default value,
@parameter2 datatype OUTPUT
)
*/
AS
IF EXISTS ( SELECT ID FROM UserInfo WHERE UserID = @UserID )
SELECT 1
ELSE
BEGIN
INSERT INTO UserInfo (UserID) VALUES(@UserID)
SELECT 0
END
RETURN 使用SqlCommand.ExecuteScalar()读出返回值,如果为1则存在用户,0则添加成功
(
@UserID varchar (50)
)AS
INSERT INTO UserInfo (UserID) VALUES(@UserID)
if (@@error<>0)
select 0
else
select 1-----插入一条记录,重复时出错
{
RETURN @Count //返回大于0这个@Count,我怎么接收他的值,怎么写,我很笨,太谢了!
建议楼主多看看基础!!-__-!