Create PROCEDURE TEST
        @Where NvarChar(100) 
        @Value NvarChar(100)
        As
          exec('Select * From Table '+@Where+' '+@Value)

解决方案 »

  1.   

    Create PROCEDURE TEST
            @Where NvarChar(100),
            @Value NvarChar(100)
            As
    declare @str varchar(2000)
            set @str = 'Select * From Table' + @Where +' '+@Value
    exec @str
    return
    go
          Exec TEST 'WHERE A=','TEST12345'--这样改
      

  2.   

    --按楼主的调用方法,应该这样改:Create PROCEDURE TEST
    @Where NvarChar(100) ,
    @Value NvarChar(100)
    As
    exec('Select * From Table '+@Where +''''+@Value+'''')
    go--调用
    Exec TEST 'WHERE A=','TEST12345'
      

  3.   

    因为 @Value 传递的是字符,所以要加上'
      

  4.   

    --或者这样,跳过'的处理问题Create PROCEDURE TEST
    @Where NvarChar(100) ,
    @Value NvarChar(100)
    As
    declare @s nvarchar(4000)
    set @s='Select * From Table '+@Where +'@Value'
    exec sp_executesql @s,N'@Value NvarChar(100)',@Value
    go--调用
    Exec TEST 'WHERE A=','TEST12345'
      

  5.   

    Create PROCEDURE TEST
            @Where NvarChar(100) 
            @Value NvarChar(100)
            As
              exec('Select * From Table '+@Where +' '+@Value')...      exec TEST  @Where='where a=',@Value='xxxx'