存储过程:
CREATE PROCEDURE select_proc 
       @strItemName nvarchar(50)          //表的列名
       @tableName nvarchar(15),           //表名
       @strCondition nvarchar(50),        //where条件
       
AS
  exec('select'+ @strItemName+' from '+@tableName+' where '+@strCondition)--------------------------------------------------------------------------
赋值:exec select_proc 'IsShopOpen','Users','UserName='a''这么赋值到底有什么问题,总是报“from附近有语法错误”,是sql语句的问题,还是给@strCondition赋值的格式不对,谢谢大家了

解决方案 »

  1.   

    exec select_proc 'IsShopOpen','Users','UserName=''a'''  -- 字符串中的'一律用两个''表示
      

  2.   

    谢谢楼上的回复,怎么还是报“from附近有语法错误“
      

  3.   

    CREATE PROCEDURE select_proc 
           @strItemName nvarchar(50)          //表的列名
           @tableName nvarchar(15),           //表名
           @strCondition nvarchar(50),        //where条件
           
    AS
      exec('select '+ @strItemName+' from '+@tableName+' where '+@strCondition)
      

  4.   

    因为你的动态语句print出来可以看到为什么会出现这种问题(一般在写动态sql语句的时候注意把动态语句print出来,这样就可以很明显的发现你的语句出现的问题了).比如说你的语句print出来是:selectIsShopOpen from Users where UserName='a'(这边的where条件是按照邹键给的建议写出来的.你可以看到前面别连接在一起,sql一开始就识别关键字,所以就会提示你是from旁边有语法错误.
      

  5.   

    CREATE PROCEDURE select_proc 
           @strItemName nvarchar(50)          --表的列名
           @tableName nvarchar(15),           --表名
           @strCondition nvarchar(50),        --where条件
           
    AS
      exec('select '+ @strItemName+' from ['+@tableName+'] where '+@strCondition)
    --这里有错,select后没有空格
    --------------------------------------------------------------------------
    赋值:exec select_proc 'IsShopOpen','Users','UserName=''a'''  --这里有错
      

  6.   

    exec('select'+ @strItemName+' from '+@tableName+' where '+@strCondition)
    是不是select后面少了个空格
      

  7.   

    Exec('select '+@ColName+' from '+@TableName+'  where '+@Fieldname+' ='''+@AreaID+'''')
    看看你拼成的字段是否正确?