你的@string内容有问题,先把拼合在一起的字符串显示出来看一下,就知道了。

解决方案 »

  1.   

    create proc GetArticle
    (
        @string varchar(100)
    )
    as
    exec('select top 10 * from article where 1=1 '+@string+'')
    没有错误的。
      

  2.   


    create proc GetArticle
    (
        @string varchar(100),
    )
    as
    exec('select top 10 * from article where 1=1 '+@string)
      

  3.   

    exec('select top 10 * from article where 1=1 ' + @string)
      

  4.   

    create proc GetArticle
    (
        @string varchar(100),
    )
    as
    exec('select top 10 * from article where 1=1 '+@string+'')
    ')
    create proc GetArticle
    (
        @string varchar(100),
    )
    as
    declare @str nvarchar(1000)
    set @str=''
    set @str=' select top 10 * from article where 1=1 ' + @string
    exec (@str)
    ')
      

  5.   


    create proc GetArticle
    (
        @string varchar(100),
    )
    as
    declare @str nvarchar(1000)
    set @str=''
    set @str=' select top 10 * from article where 1=1 ' + @string --这句意义是??
    exec (@str)
      

  6.   

    create proc GetArticle
    (
        @string varchar(100),
    )
    as
    set nocount on
    declare @str nvarchar(1000)
    set @str=''
    set @str=' select top 10 * from article where 1=1 ' + @string --这句意义是??
    exec (@str)
    set nocount off
      

  7.   

    create proc GetArticle
    (
        @string varchar(100),
    )
    as
    set nocount on
    declare @str nvarchar(1000)
    set @str=''
    set @str=' select top 10 * from article where 1=1 ' + @string --这句意义是??
    print @str -- 先print出来看看,估计是你@string里面有问题, 
    --exec (@str)
    set nocount off
      

  8.   

    create proc GetArticle@string varchar(100)as
    exec('select top 10 * from article where 1=1 and '+@string+'')这样写没有语法错误。