SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Pr_Name_GetDocuments]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[Pr_Name_GetDocuments]
(
@Title varchar(50)
)
ASSELECT
    Document.*,Staff.RealNameFROM  
    Document ,Staff
WHERE    
    Staff.Staff_ID = Document.UserID and Document.Title like  '%'+@Title+'%'
 

END这样写怎么一直提示'%' 附近有语法错误菜鸟求教大神啊

解决方案 »

  1.   


    exec('SELECT
      Document.*,Staff.RealNameFROM   
      Document ,Staff
    WHERE   
      Staff.Staff_ID = Document.UserID and charindex('+@title+'Document.Title)>0')
     改成这样
      

  2.   

    Staff.Staff_ID = Document.UserID and Document.Title like ''%''+@Title+''%''
      

  3.   

    ('+@title+'Document.Title)  这儿应该少了一个逗号('+@title+',Document.Title)
    楼主的end前面的引号是手误?
      

  4.   

    楼上的。不是手误啊。在前面create前面不是也有一个‘号码。。
    问题解决了。。换了一个写的方法。。只是还是不知道要是这样写存储过程改怎么写模糊查询。。
      

  5.   

    按照楼主的写法应该是
    like ''%'+@Title+'%''
    这样才对''在执行过程中表示单引号
      

  6.   

    按照你原来的写法
    ''%'+@Title+'%''这样才对