有表A 结构如下
id(int)标识列     userName      userPasswordSQL存储过程如下
create procedure proc_delWord
@useSelect varchar(100)
as
delete from word where charindex(id,@useSelect) > 0
go将id列改为varchar时测试正确 但
charindex()函数  表达式一不允许是int类型的 表的结构不允许改变
要实现同样功能,该如何修改存储过程?

解决方案 »

  1.   

    delete from word where charindex(','+rtrim(id)+',' , ','+@useSelect+',') > 0 
      

  2.   

    delete from word where charindex(ltrim(id),@useSelect) > 0 

    cast(id as varchar(100))
      

  3.   

    int可以隱式轉換為varchar呀, 感到很奇怪.
      

  4.   

    create procedure proc_delWord
    @useSelect varchar(100)
    as
    delete from word where charindex(cast(id as varchar),@useSelect) > 0
    go 
      

  5.   

    因为ID是INT型, 将其转换成varchar就行了create procedure proc_delWord 
    @useSelect varchar(100) 
    as 
    delete from word where charindex(cast(id as varchar), @useSelect) > 0 
    go