查询数据库 提示用户 然后判断

javabuilder9 2007-09-01 11:20:15
如何做一个存储过程

添加到表A里面 表A里面有一个字段DepartmentID(不是自增)

在添加前先判断A表是否存在该DepartmentID 如果存在 则返回提示用户是否覆盖

如果否则返回不做操作 如果是 则继续操作覆盖该DepartmentID
...全文
121 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiao_jun_0820 2007-09-01
  • 打赏
  • 举报
回复
存储过程可以这样写:
create procedure adddata
@DepartmentID int
as
declare @count int
select @count=count(*) from DepartmentInfo where DepartmentID=@DepartmentID
if(@count>0)
return 0
else
begin
insert into A(DepartmentID) values(@DepartmentID)
return @@identity --返回刚插入的DepartmentID值(前提是Department必须是主键,否则不能用@@identity)
end
至于是否覆盖则应该在后台程序里实现.
给楼主点建议:存储过程应该尽量写的简单,不要什么功能多放到数据库的存储过程里去完成.象我的这个存储过程,我只要判断DepartmentID是否存在就行了,如果存在就返回0,然后在后台代码中判断存储过程的返回值是不是为0,如果为0,就执行覆盖操作.

而不象楼主说的把覆盖操作的实现什么的都写在存储过程里,这样你的存储过程的通用性会大打折扣
watson110 2007-09-01
  • 打赏
  • 举报
回复
sunxw18(不停的尝试) 说的难道不对吗,倒是lz又把我弄糊涂了
懒牛科技 2007-09-01
  • 打赏
  • 举报
回复
弹出窗口判断 是否覆盖
Response.Write("<script language='javascript'>confirm('是否覆盖')</script>")
javabuilder9 2007-09-01
  • 打赏
  • 举报
回复
不对 应该是怎么在cs代码里写 从数据库读取是否存在DepartmentID
if 存在
弹出窗口判断 是否覆盖
if 确认
update Table A
else
返回
else
添加

应该是这么一个流程 请问怎么写呢 问题就是怎么弹出窗口 根据弹出窗口选择来判断是覆盖还是返回
sunxw18 2007-09-01
  • 打赏
  • 举报
回复
写错了
set @result=0
end

sunxw18 2007-09-01
  • 打赏
  • 举报
回复
create procedure adddata
@DepartmentID varchar(50),
@result int output
as
declare @count int
select @count=count(*) from A where DepartmentID=@DepartmentID
if(@count>0)
set @result=1 --重复
else
begin
insert into A(DepartmentID) values(@DepartmentID)
set @result=1
end

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧