select * from adeclare   @sqlcommand   char(500)   
select @sqlcommand='select * from a where content like N''%小李%'''  --中文不好用
EXEC(@sqlcommand) aid content ams flag
1 小李 空 2
2 小王 空 1aid content ams flag
1 小李 空 2楼主,我的可以查到,奇怪

解决方案 »

  1.   

    MenuName 字段类型为:nvarchar(50)
      

  2.   

    create proc pro_a
    as
    begin
    declare @sqlcommand char(500) 
    select @sqlcommand='select * from a where content like N''%小李%''' 
    EXEC(@sqlcommand) 
    end
    exec pro_a不是存储过程的错啊
      

  3.   


    alter PROCEDURE test
    ( @fdwhere varchar(50))
    AS
    BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;
    declare @sql varchar(1000)
    select @sql = 'select * from [tb_menu_list]' + @fdwhere
    exec(@sql)
        -- Insert statements for procedure here

    END
    GO
    执行DECLARE @return_value intEXEC @return_value = [dbo].[test]
    @fdwhere = 'where menuname like N''%用%'''SELECT 'Return Value' = @return_valueGO
      

  4.   


    DECLARE @return_value intEXEC @return_value = [dbo].[test]
    @fdwhere = 'where menuurl like N''%as%'''GO
    英文的就没有问题,不是like的问题,=也取不到记录,只有英文好用。OS:Win2K3 SQL2005EP
      

  5.   

    没有问题...
    where 之前最好加个空格.
      

  6.   

    DECLARE    @return_value intEXEC    @return_value = [dbo].[test]
            @fdwhere = 'where menuname like N''%用%'''SELECT    'Return Value' = @return_value上面,你想干什么啊?
      

  7.   

    问题已经解决,主要在于nvarchar处理