alter proc A_AssetFind
(
@table sysname,
@filed varchar(50),
@value varchar(50
)
as
declare @sql nvarchar(1000)
set @sql = 'select * from [' + @table +'] where ['+@filed+']= ' +@value
exec(@sql)
go
怎么老有错??
谁给个好点的塞.谢谢!

解决方案 »

  1.   

    @value   varchar(50   ---这里少了个右括号)
      

  2.   

    --如果参数是字符类型,还应该两侧加单引号,动态SQL内,两个单引号表示一个单引号set @sql = 'select * from [ ' + @table + '] where [ '+@filed+ ']= ''' +@value  + ''''
      

  3.   

    set   @sql   =   'select   *   from   ['   +   @table   + ']   where   ['+@filed+ ']=   '''   +@value +''''
      

  4.   

    create  proc   A

    @table   sysname, 
    @filed   varchar(50), 
    @value   varchar(50) 

    as 
    declare   @sql   nvarchar(1000) 
    set @sql='select * from '+@table+ '  where  '+@filed+ '=' +@value
    print(@sql)
    exec(@sql) 
    go 
    练习
      

  5.   

    可以使用SQL Developer来进行调试。
      

  6.   

    alter   proc   A_AssetFind@table   sysname, 
    @filed   varchar(50), 
    @value   varchar(50 )as 
    declare   @sql   nvarchar(1000) 
    set   @sql   =   'select   *   from   [ '   +   @table   + ']   where   [ '+@filed+ ']=   '   + @value 
    exec(@sql) 
    go