日期:2014-05-19  浏览次数:20417 次

存储过程int参数问题
Create   PROCEDURE   dbo.get_addressbook_by_category
@owner   int,
@addressCategory   nvarchar(4000)

as
declare   @sql   varchar(8000)
select   @sql=
'Select  
[ad_id],
[ad_name],
[mobileTelephone],
[birthday],
[sexy],
[units],
[dept],
[address],
[phone],
[province],
[city],
[zip],
[email],
[owner],
[addressCategory]
from   AddressBook   where   [owner]=@owner   and   [addressCategory]   in   ( '+@addressCategory+ ') '
exec(@sql)
return  
GO


Msg   137,   Level   15,   State   2,   Line   17
必须声明标量变量   "@owner "。


------解决方案--------------------
from AddressBook where [owner]=@owner and [addressCategory] in ( '+@addressCategory+ ') '

-->


from AddressBook where [owner]= ' + cast(@owner as varchar(100)) + ' and [addressCategory] in ( '+@addressCategory+ ') '