日期:2014-05-20  浏览次数:20569 次

《〈〈Sql问题〉〉》
我的存储过程是这样的
CREATE   PROCEDURE   GetCardByNumber  
@CardNumber   nvarchar(255)
  AS
  DECLARE   @sql   NVARCHAR(2000)

        set   @CardNumber   =   ' ' ' '   +   replace(@CardNumber,   '. ',   ' ' ', ' ' ')   +   ' ' ' '

SET   @sql   =   'select   *   from   CardTable   where   CardNumber   in   ( '   +   @CardNumber   +   ') '
exec   @sql
GO

等我一运行的时候就报错:未能找到存储过程   'select   *   from   CardTable   where   CardNumber   in   ( '226026275526 ') '。

请帮忙分析一下是那出错了。谢谢

------解决方案--------------------
declare @CardNumber varchar(50)
DECLARE @sql NVARCHAR(2000)
set @CardNumber= '1.2.3.4 '
set @CardNumber = ' ' ' ' + replace(@CardNumber, '. ', ' ' ', ' ' ') + ' ' ' '
select @CardNumber
SET @sql = 'select 1 where ' ' '+ '1 '+ ' ' ' in ( ' + @CardNumber + ') '
exec (@sql)

-----> 这样都可以查到阿