如何修改水印写入存储过程,为LastModifiedtime设置默认值1900-01-01
你可以使用SQL Server的ISNULL()函数来实现这个逻辑,当传入的@LastModifiedtime为NULL时,自动替换为指定的默认时间值。修改后的存储过程代码如下:
ALTER PROCEDURE [dbo].[usp_write_Time_watermark] @LastModifiedtime datetime, @TableName varchar(50) AS BEGIN UPDATE dbo.Store_Time_Watermarktable SET [WatermarkValue] = ISNULL(@LastModifiedtime, '1900-01-01 00:00:00.000') WHERE [TableName] = @TableName END
说明
ISNULL(expression, replacement_value)函数会检查第一个参数expression是否为NULL,如果是则返回第二个参数replacement_value,否则返回expression本身,刚好满足你的需求。- 也可以用
COALESCE()函数替代ISNULL(),效果一致:COALESCE(@LastModifiedtime, '1900-01-01 00:00:00.000')。两者的区别在于COALESCE()支持多个参数,会返回第一个非NULL值,而ISNULL()仅支持两个参数,这里用前者或后者都能达到目的。
内容的提问来源于stack exchange,提问作者gmp
相关产品推荐
相关产品推荐

