sql in 的问题
小弟今碰到一个问题
create aa
@id varchar(200)
as
select * from table where id in (@id)
go
@id 是在程序里拼接好的字符串
string id ="'12345678','7654321','abcdefg'"
执行不会报任何错误,也就是说是允许这么传的,但却什么都查不出来
直接用查询分析器
select * from table where id in ('12345678','7654321','abcdefg')是有数据的
版本:sqlserver 2008
请各位大大尽量想办法用 aa这个存储过程解决问题
------解决方案--------------------
SQL code
create proc aa
@id varchar(200)
as
declare @sql varchar(max)
set @sql = '
select * from table where id in (' + replace(@id,'''','''''') + ')'
exec(@sql)
go
------解决方案--------------------
参数传进去的时候好像要用两个分号,就是''xx''这样。也可以使用1楼的方法