SqlServer2005存储过程求大神指教
sqlserver吧
全部回复
仅看楼主
level 1
下亦花 楼主
Create proc dbo.t1
@id nchar(10),
@name text(20),
@psd int(2)
as
declare
@pname text(20),
@ppsd int(2),
@returnValue int output
if exists(select * from dbo.t3 where id=@Id)
begin
select @pname=name,@ppsd=ppsd from Test2.dbo.t2 where id=@Id
if ((@pname=@name) and (@ppsd=@ppsd)
begin set @returnValue=0 --有相同的数据,直接返回值
end
else
begin
update dbo.t3 set name=@name,psd=@psd where id=@Id
set @returnValue=2 --有主键相同的数据,进行更新处理
end
end
else
begin
insert into dbo.t3 values(@id,@name,@psd)
set @returnValue=1 --没有相同的数据,进行插入处理
end
----------------------------------------------------------------------------------------------------------------
以下是报错内容,求大神解惑。
2015年03月11日 02点03分 1
level 1
下亦花 楼主
消息 181,级别 15,状态 1,过程 t1,第 9 行
不能在 DECLARE 语句中使用 OUTPUT 选项。
消息 156,级别 15,状态 1,过程 t1,第 17 行
在关键字 'begin' 附近有语法错误。
消息 137,级别 15,状态 1,过程 t1,第 18 行
必须声明变量 '@returnValue'。
消息 137,级别 15,状态 1,过程 t1,第 23 行
必须声明变量 '@returnValue'。
消息 137,级别 15,状态 1,过程 t1,第 29 行
必须声明变量 '@returnValue'。
2015年03月11日 02点03分 2
1