我有一个需求,我需要看看这个密钥是否已经存在。如果它已经存在更新基于关键字的数据,则只需插入新数据。为什么这种行为与int在SQL Server 2005中
,我采取的方法是
DECLARE @Tracking_Id INT
SELECT @Tracking_Id = Tracking_Id
FROM DOCUMENT_TRACKING
WHERE Secondary_Document_Id = @Secondary_Document_Id
AND primary_Document_Id = @Primary_Document_Id
IF (@Tracking_Id = 0)
BEGIN
INSERT INTO DOCUMENT_TRACKING
(
Primary_Document_Id,
Secondary_Document_Id,
Tracking_Result,
Comment,
Created_By,
Created_Dt,
Updated_By,
Updated_Dt
)
VALUES (
@Primary_Document_Id,
@Secondary_Document_Id,
@TrackingResult,
@Comments,
@User_ID,
GETDATE(),
@User_ID,
GETDATE()
)
END
ELSE
BEGIN
SELECT @Tracking_Id = Tracking_Id
FROM DOCUMENT_TRACKING
WHERE Secondary_Document_Id = @Secondary_Document_Id
AND primary_Document_Id = @Primary_Document_Id
UPDATE DOCUMENT_TRACKING
SET tracking_result = @TrackingResult,
Comment = @Comments,
Updated_By = @User_ID,
Updated_Dt = GETDATE()
WHERE Tracking_Id = @Tracking_Id
END
现在,当存在与我的数据库状态没有行,要么@Tracking_Id必须是0或“”或空,但它说明不了什么,当我比较一下与任何这些事情。
我不想使用计数方法,然后比较0或更大。我如何处理这个scenerio。
没有它不与isnull()一起使用。 – Rohit 2009-12-04 08:15:07