sqlserver 存储过程中传参数问题

CYSONG168 2011-03-04 12:01:11
我写的存储过程中

alter PROCEDURE pro_A(@str varchar(8000))
as
begin
declare @strtem varchar(8000)
set @strtem = @str
select * from ABCCode where ABCCode in (@strtem)
end



---exec pro_A '''A'',''B'''


执行过程没有结果呢? 帮忙啊 谢谢!

...全文
358 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
风驰天下丨 2011-03-04
  • 打赏
  • 举报
回复
怎么我运行这SQL时,怎么出现下面的错误呢

消息 217,级别 16,状态 1,过程 pro_A,第 11 行
超出了存储过程、函数、触发器或视图的最大嵌套层数(最大层数为 32)。
gw6328 2011-03-04
  • 打赏
  • 举报
回复

alter PROCEDURE pro_A(@str varchar(8000))
as
begin
declare @strtem varchar(8000)
set @strtem = @str
EXEC('select * from ABCCode where ABCCode in ('+@strtem+')');
end

--小F-- 2011-03-04
  • 打赏
  • 举报
回复
alter PROCEDURE pro_A(@str varchar(8000))
as
begin
declare @strtem varchar(8000)
set @strtem = @str
select * from ABCCode where ','+@strtem+',' like %','+ABCCode+','% end
王向飞 2011-03-04
  • 打赏
  • 举报
回复
select * from ABCCode where ABCCode in (@strtem)
那是因为没有检索到符合条件的记录
AcHerat 2011-03-04
  • 打赏
  • 举报
回复

alter PROCEDURE pro_A(@str varchar(8000))
as
begin
declare @strtem varchar(8000)
set @strtem = @str
select * from ABCCode where charindex(','+ABCCode+',',','+@strtem+',') > 0
end

exec pro_A 'A,B'
快溜 2011-03-04
  • 打赏
  • 举报
回复
alter PROCEDURE pro_A(@str varchar(8000))
as
begin
select * from ABCCode where charindex(ABCCode+',',@str+',')>0
end



exec pro_A 'A,B'
AcHerat 2011-03-04
  • 打赏
  • 举报
回复

alter PROCEDURE pro_A(@str varchar(8000))
as
begin
declare @strtem varchar(8000)
set @strtem = @str
select * from ABCCode where charindex(','+ABCCode+',',','+@strtem+',') > 0
end
CYSONG168 2011-03-04
  • 打赏
  • 举报
回复
写法挺怪异,但是好用。

[Quote=引用 3 楼 acherat 的回复:]
SQL code

alter PROCEDURE pro_A(@str varchar(8000))
as
begin
declare @strtem varchar(8000)
set @strtem = @str
select * from ABCCode where charindex(','+ABCCode+',',','+@strtem+',') > 0
e……
[/Quote]

27,582

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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