错误记录--Sql proc

来源:互联网 发布:游戏鸡充值软件 编辑:程序博客网 时间:2024/05/17 00:57

1.

use TestForProcGOdeclare @Id int, @Sex varchar(10), @Name varchar(10)set @Id=14 set @Sex='male'exec getid @Id output, @Sex, @Name outselect @Id as Id, @Name as Name
wrongs: 

set @Id=14, set @Sex='male'

set @Id=14, @Sex='male' 


2.

ALTER proc [dbo].[getid_return]@Id int,@Sex varchar(10)asdeclare @ReturnVar varchar(10)select @ReturnVar=CustomerName from Customerwhere CustomerId=@Id and Sex=@Sexreturn @ReturnVar

错误: return @ReturnVar

return 的值只能是整数,返回一个varchar类型的值当然会报错。 

修改的方法有两种,一是把return改成seleclt,二是去掉return,直接用output定义变量。

说明:

修改为select @ReturnVar以后,执行

@Name=getid_return @var, @var

以后便会立即输出表中的值, 这样是不太建议的,因为输出的标头是NULL,为了方便定义,还是应该将输出的变量定义为output类型


3. 

declare @Id int, @Sex varchar(10), @Name varchar(10)set @Id=14set @Sex='male'exec getid_return @Id, @Sex, @Name outselect @Name as Name


错误: 

proc里定义了@Name为 varchar  out类型, 但是在执行时输入:

exec getid_return @Id, @Sex, @Name
这样是得不到输出结果的,应该改成 exec getid_return !Id, @Sex, @Name out



原创粉丝点击