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

请问这样的一个"存储过程"该如何设计?
存储过程如下:
/*   将部分用户设置为离线   */
ALTER   PROC   Sp_SetSomeUserToOff
@userids   nvarchar(4000)
AS  
UPDATE   UserInfo  
SET   Online   =   0,Status   =   4
WHERE   Usernumber   in   (@userids)


那么我该如何调用?
Sp_SetSomeUserToOff   1001,1002         --   参数太多
Sp_SetSomeUserToOff   '1001,1002 '     --   数据类型错误


该如何解决该问题?


------解决方案--------------------
ALTER PROC Sp_SetSomeUserToOff
@userids nvarchar(4000)
AS
declare @str nvarchar(5000)
set @str = 'UPDATE UserInfo
SET Online = 0,Status = 4
WHERE Usernumber in ( ' + @userids + ') '
exec @str