我希望当用户插入重复数据(代码值)时为用户显示错误,以及当用户向用户插入空值时允许。
我的代码适用于重复代码,但是当用户为空值时,我不希望显示错误并允许用户插入数据。
我的代码是:
IF EXISTS (
SELECT cd.Code
FROM chqDocuments cd
INNER JOIN chqDocumentTypes cdt
ON cdt.ID = cd.chqDocumentTypeID
INNER JOIN chqDocumentTypeClassifications cdtc
ON cdtc.ID = cdt.chqDocumentTypeClassificationID
WHERE
(cd.Code = @Code ) AND
cdtc.id = @chqDocumentTypeClassificationID_Entry And
(LTRIM(RTRIM(cdtc.Code))='11' OR LTRIM(RTRIM(cdtc.Code))='12')
)
BEGIN
RAISERROR('showerror',16,1)
RETURN
END
答案 0 :(得分:2)
假设@Code是用户输入的代码值,此代码将按原样运行,因为以下代码永远不会评估为真正的语句:
cd.Code = NULL -- even NULL != NULL; NULL IS NULL only works
由于永远不满足该语句,因此EXISTS子句也永远不会满足。因此,将允许用户为代码输入NULL值而不会抛出错误。