我有一张表,基本上无法从中删除数据。因此,每当我更新记录时,我都必须保留以前的记录并将新的详细信息复制到新行中。我为此创建了一个存储过程,它的作用是:
- 用今天的日期更新以前的记录以显示它今天过期
- 将我传递给它的参数插入到新行中。
现在,当我在 SQL Server 2008 中执行此过程时,它完美地执行显示 2 行受到影响。但是当我从我的程序(它是一个 MVC 应用程序)中调用它时,只会发生更新 - 没有插入。
执行时没有错误或异常。返回的行数ExecuteNonQuery()
为 1。
有谁知道,可能是什么问题?
以下是我正在做的事情
ALTER PROCEDURE sp_ABC
(
@Primarykey int,
@Desc varchar(2000),
@Actor varchar(10),
@txtCreatedBy char(6),
@dtEfectiveEnd datetime
)
AS
BEGIN
DECLARE @currentTime DATETIME, @intDeclarationID int
SET @currentTime = GETDATE()
SELECT @intDeclarationID = (MAX([intDeclarationId])+1) FROM tbl_ABC
BEGIN TRY
UPDATE tbl_ABC
SET [dtEffectiveEnd] = GETDATE()
,[txtLastModifiedBy] = @txtCreatedBy
,[dtLastModifiedBy] = GETDATE()
WHERE intDeclarationId = @Primarykey
INSERT INTO tbl_ABC
(
[intDeclarationId]
,[txtDeclarationDesc]
,[txtActor]
,[dtCreated]
,[txtCreatedBy]
,[dtLastModifiedBy]
,[txtLastModifiedBy]
,[dtEffectiveEnd]
)
VALUES
(
@intDeclarationID,
@Desc,
@Actor,
@currentTime,
@txtCreatedBy,
@currentTime,
@txtCreatedBy,
@dtEfectiveEnd
)
END TRY
BEGIN CATCH
SELECT ERROR_MESSAGE() AS ErrorMessage
END CATCH
END
END
GO