create proc a (
@name varchar(20),
@id varchar(20)
)
as
exec ('select * from table where name = '+ @name +' and id= ' + @id)提示列名 'name' 无效。 我就像用这种格式写 请问该怎么办?

解决方案 »

  1.   

    table 表有 name字段吗?
      

  2.   

    語法沒問題
    看看你table表是否有Name字段?
      

  3.   

    exec ('select * from table where name = '+ @name +' and id= ' + @id)
    这个table表里面没有name字段!
      

  4.   

    exec ('select * from table where name = '+ @name +' and id= ' + cast(@id as varchar)) 
    试试
      

  5.   

    @name里面给的值是'name',那个好像是因为name 是varchar类型, 变量两边没有单引号 被当作字段处理了。 
      

  6.   

    create proc a ( 
    @name varchar(20), 
    @id varchar(20) 

    as 
    exec ('select * from table where name = '''+ @name +''' and id= ''' + @id+'''')