我将从 .NET 执行更新存储过程。我想要 T-SQL 中的以下逻辑,但是我似乎无法找出如何做到这一点。
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE sp_UpdateTable
@TableID int,
@StartTime1 datetime,
@EndTime1 datetime
AS
BEGIN
SET NOCOUNT ON;
UPDATE [Table]
SET [StartTime1] = WAS_PASSED_FROM_CODE(@StartTime1, @StartTime1, [StartTime1])
,[EndTime1] = WAS_PASSED_FROM_CODE(@EndTime1, @EndTime1, [EndTime1])
WHERE TableID = @TableID
END
GO
好的,所以我基本上要寻找的是一种确定参数是否是从代码中指定的方法,(因此 WAS_PASSED_FROM_CODE)如果参数是从代码中指定的,则将该列更新为指定的值,否则,保持不变(更新为现有值)。
这可能吗?
请注意,在这种情况下,代码传递 NULL 是有效的,在这种情况下,列应该更新为 NULL。