像声明一样行不通!!! [英] Like Statment Doesn't Work !!!
本文介绍了像声明一样行不通!!!的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我创建了该存储过程,当我通过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 usedN''%'' + @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屋!
查看全文