首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

请教,IN 运算符可以这么用吗

2012-04-03 
请问,IN 运算符可以这么用吗? CREATEPROCup_myp@IDSnvarchar(2000)ASSELECT*FROMUserInfoWHEREUserIDin(@I

请问,IN 运算符可以这么用吗?

CREATE   PROC   up_myp
@IDS   nvarchar(2000)
AS
SELECT   *   FROM   UserInfo   WHERE   UserID   in   (@IDS)

go


---------------------------
up_myp   '1,2 '

/*
服务器:   消息   245,级别   16,状态   1,过程   up_myp,行   4
将   nvarchar   值   '1,2 '   转换为数据类型为   int   的列时发生语法错误。
*/

[解决办法]
CREATE PROC up_myp
@IDS nvarchar(2000)
AS
exec ( 'SELECT * FROM UserInfo WHERE UserID in ( '+@IDS+ ') ')

go

[解决办法]
UserID为数值型.
SELECT * FROM UserInfo WHERE UserID in (@IDS)
UserID为字符型.
declare @sql as varchar(100)
set @sql = 'SELECT * FROM UserInfo WHERE UserID in ( ' ' ' + @IDS + ' ' ') '
exec(@sql)


热点排行