存储过程可以这样写:
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,就执行覆盖操作.
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