我已经编写了一个程序来检查数据库中的重复记录并返回true或false但我的问题是它无法接收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'+@TxtCheck=Value
但没有工作
请引导我完成这个..
答案 0 :(得分:0)
试试这个
声明变量
DECLARE @pre_var int
将计数结果设置为变量
选择@pre_var = count(*)FROM tablename WHERE conditions
现在检查@pre_var IF @pre_var = 0 BEGIN
//插入或更新或其他
END