就像查询姓名的语句:
select Name from Student where Id=@Id
现在遇到个问题就是如果要使用like 呢?  我试了不能使用
 Id like '@Id %'
求大家指点一下。SQL参数化

解决方案 »

  1.   

    用动态SQL实现,declare @tsql varchar(6000)select @tsql='select Name from Student where Id like '''+rtrim(@Id)+'%'' 'exec(@tsql)
      

  2.   

    就看你想按什么查询,你的应该先转换成字符串类型select Name from Student where cast(Id as varchar) like cast(@Id as varchar)+'%'
     
      

  3.   


    declare @sql varchar(2000)
    set @sql='select Name from Student where Id like '+''''+@Id+'%'+''''
    print @sql
    exec(@sql)
      

  4.   

    如果@Id是字符類型,可以這樣:
    select Name from Student where Id like @Id+'%'
      

  5.   

    不管是在条件的左边或右边,如果是整形和字符型做对比,系统会把字符型转换为整形后再对比,如果转换失败,则报错
    可以用上面的方法,把ID强制转换为字符型后再做对比,但这样就利用不上ID字段的索引了。