>>>>>>>>>>这个存储过程问题在哪儿?在线等

ThinPig 2005-12-24 09:30:15
我需要写一个存储过程如下:
create procedure GETA2 @IDS varchar(1024) as
begin
select AA.a, AA.a2 from AA,SS_FAVORITEURL where BB.aID=AA.aID and BB.ID in (@IDS)
end

结果带入参数 @IDS没有任用,就是不能查到任何数据。
@IDS= 'b1','b2','b3' ,在数据库BB表的ID字段中一定是有b1,b2,b3这三个值的。

各位老大指点,一下在线等
...全文
100 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
OracleRoob 2005-12-24
  • 打赏
  • 举报
回复
--创建拆分函数
/*
功能:实现split功能的函数
*/
create function fn_split
(
@inputstr varchar(8000),
@seprator varchar(10)
)
returns @temp table (a varchar(200))
as

begin
declare @i int

set @inputstr = rtrim(ltrim(@inputstr))
set @i = charindex(@seprator, @inputstr)

while @i >= 1
begin
insert @temp values(left(@inputstr, @i - 1))

set @inputstr = substring(@inputstr, @i + 1, len(@inputstr) - @i)
set @i = charindex(@seprator, @inputstr)
end

if @inputstr <> '\'
insert @temp values(@inputstr)

return
end

--测试存储过程
create procedure sp_test (@bm varchar(100))
as
select * from 表 where 字段 in (select * from dbo.fn_split(@bm,','))
go


--调用示例
declare @a varchar(100)
set @a ='b1,b2,b3'
exec sp_test @a


lw1a2 2005-12-24
  • 打赏
  • 举报
回复
排除楼上所说的之外
@IDS= '''b1'',''b2'',''b3'''
浩方软件HFWMS 2005-12-24
  • 打赏
  • 举报
回复
You try try
浩方软件HFWMS 2005-12-24
  • 打赏
  • 举报
回复
create procedure GETA2
@IDS varchar(1024)
as
begin
declare @sql varchar(8000)
set @sql='select AA.a, AA.a2 from AA,SS_FAVORITEURL where BB.aID=AA.aID and BB.ID in (' + @IDS +')'
exec(@sql)
end
lsqkeke 2005-12-24
  • 打赏
  • 举报
回复
也就是说你的表BB在from 子句中漏掉了 缺少数据表源
lsqkeke 2005-12-24
  • 打赏
  • 举报
回复
select AA.a, AA.a2 from AA,SS_FAVORITEURL BB where BB.aID=AA.aID and BB.ID in (@IDS)
还是:
select AA.a, AA.a2 from AA, BB where BB.aID=AA.aID and BB.ID in (@IDS)

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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