像声明一样行不通!!! [英] Like Statment Doesn't Work !!!

查看:82
本文介绍了像声明一样行不通!!!的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了该存储过程,当我通过thoes参数时,它运行良好,除了@Temp_Emp_Name参数,当我通过它时,它不起作用,并且没有数据弹出

任何帮助信息,

代码:

I created that stored procedure and it works well when i passes thoes parameters ,Except @Temp_Emp_Name parameter when i passes it it doesn''t work and no data pops up

Any Help Pls ,

Code:

ALTER proc [dbo].[SP_Rprt_TempEmp]
@Temp_File_No int,
@Qualification int,
@Temp_Emp_Name nvarchar(200),
@Temp_BirthDate_From  date,
@Temp_BirthDate_To date,
@Temp_Dist int,
@Temp_Disabled  bit
as
begin


SELECT    dbo.Qualifications.Qualification, dbo.Temp_Emp.Temp_Emp_Name, dbo.Temp_Emp.Temp_File_No, dbo.Temp_Emp.Temp_BirthDate, 
                      dbo.Temp_Emp.Disabled, dbo.Temp_Emp.Temp_Job, dbo.Districts.District
FROM         dbo.Qualifications INNER JOIN
                      dbo.Temp_Emp ON dbo.Qualifications.Qualification_ID = dbo.Temp_Emp.Qualification_ID INNER JOIN
                      dbo.Districts ON dbo.Temp_Emp.District_ID = dbo.Districts.District_ID  

WHERE
( Temp_Emp.Temp_File_No=@Temp_File_No  or  @Temp_File_No=0 ) and
( Temp_Emp.Qualification_ID=@Qualification or @Qualification=0 ) and
( Temp_Emp.Temp_Emp_Name like N'%@Temp_Emp_Name%'  or @Temp_Emp_Name='null'  ) and

(( Temp_Emp.Temp_BirthDate>=@Temp_BirthDate_From and Temp_Emp.Temp_BirthDate<=@Temp_BirthDate_To )
OR (@Temp_BirthDate_From='1000/01/01' and @Temp_BirthDate_To='1000/01/01') )  and

( Temp_Emp.District_ID=@Temp_Dist or @Temp_Dist=0 ) and 
( Temp_Emp.[Disabled]=@Temp_Disabled )   


end

推荐答案

:sigh:
N''%@Temp_Emp_Name%''是一个字符串.
也许如果您改用N''%'' + @Temp_Emp_Name + N''%''?
:sigh:
N''%@Temp_Emp_Name%'' is a string.
Perhaps if you used N''%'' + @Temp_Emp_Name + N''%'' instead?


请在"begin"关键字之后添加以下代码.

代码:
Please include following code after "begin" keyword.

Code:
If @Temp_Emp_Name='' Set @Temp_Emp_Name=null



另外,请从以下声明中删除单引号



Also please remove single quote from following statement

@Temp_Emp_Name='null'


因为当您在任何sql语句中使用单引号时,sql都会将其读取为字符串. null和"null"都不相同.


我认为它将很好用.


Because when your use single quote in any sql statement then sql read it as a string. null and ''null'' both not same.


i think it will be worked well.


这篇关于像声明一样行不通!!!的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆