想将下列Sql语句改写成使用sp_executesql执行,select a.* from a where a.field in ('S0001','1')
改用sp_executesql后的语句。exec sp_executesql N' select a.* from  a  
where  a.field in (@cardno) ',N'@cardno nvarchar(150)',@cardno=N' ''S0001'',''1'''
但运行时,sp_executesql的并没找到任何记录。这是怎么回事?哪里有问题?

解决方案 »

  1.   

    --try:
    exec sp_executesql N' select a.* from  a  
    where  a.field in ('+@cardno+')',N'@cardno nvarchar(150)',@cardno=N' ''S0001'',''1'''
      

  2.   

    现在恢复高亮了,呵呵exec sp_executesql N' select a.* from  a  
    where CHARINDEX(CONVERT(VARCHAR(8000), a.field),(@cardno)>0 ',N'@cardno nvarchar(150)',@cardno=N' ''S0001'',''1'''这样应该更标准