2014-03-28 27 views
0

我写了一个程序来检查重复的记录在数据库中,并返回真或假,但我的问题是,它不能接收nvarchar的值,如何在文本输入到文本框后检查重复记录?

ALTER proc [p_Sgm_OnlineBooking_BaseInfo_CheckDuplicate] 
(
@ParentId int, 
@Lang varchar(5), 
@TxtCheck nvarchar(MAX) 
) 
AS 

BEGIN 

if exists (select Value from Sgm_OnlineBooking_BaseInfo_Entries where @ParentId=ParentId and @Lang=Lang and @TxtCheck=Value 
) 
select 'True' 
else 
select 'False' 
and @TxtCheck=Value 

End 

当我执行给我错误的结果:

exec p_Sgm_OnlineBooking_BaseInfo_CheckDuplicate 0, fa, 'استرالیا' ==> false 

但通过添加N让我真:

exec p_Sgm_OnlineBooking_BaseInfo_CheckDuplicate 0, fa, N'استرالیا' ==> true 

如何在我的程序应用此N +我想N'@TxtCheck'=Value'N'[email protected]=Value 但没有工作 请指导我这个..

回答

0

尝试这样一个

声明一个变量

DECLARE @pre_var诠释

集计数结果变量

选择@pre_var = count(*)FROM表名WHERE条件

现在检查@pre_var IF @pre_var = 0 BEGIN

//插入或更新或任何

END

+0

我试过,但我的问题是再次的条件。条件是相同的,需要识别nvarchar值。 – Rain

+0

必须尝试像这样N @ TxtCheck –

+0

ref this 1。 http://stackoverflow.com/questions/3868188/problem-with-where-clause-matching-on-arabic-string –

相关问题