【发布时间】:2010-10-26 21:30:35
【问题描述】:
我正在尝试执行以下操作:
IF NOT EXISTS (
SELECT *
FROM [tbl_web_company]
WHERE [name] = @name
AND [address1] = @address1
AND [address2] = @address2
AND [city] = @city
AND [province_id] = @province_id
AND [postal_code] = @postalcode
AND [contact_phone] = @phone
AND [contact_fax] = @fax
AND [deleted] = dbo.pvd_fn_getDeletedDate(@id, @active))
BEGIN
SELECT 'update'
END
ELSE
BEGIN
SELECT 'no update'
END
我基本上是想查看是否有任何列发生了变化,但是当@province_id 和 dbo.pvd_fn_getDeletedDate(@id, @active) 在数据库中为 NULL 并且都设置为 NULL 时,我遇到了问题.
省 ID 是一个 INT - 可空
Deleted 是一个日期时间 - 可以为空。
如果数据库中的记录对于这两个值都为 NULL,那么这将始终选择“更新”。这是错误的,因为 [province_id] 和 [deleted] 为 NULL。
在这种情况下如何处理 NULLS 有什么建议吗?
【问题讨论】:
标签: sql sql-server-2005 tsql