我已经在SQL Server存储过程中编写了以下更新语句。
IsNull
在这里做什么?
Update [dbo].[Images]
set ImageName = IsNull(@ImageName, ImageName), ItemId = IsNull(@ItemId, ItemId)
where TypeId = @TypeId;
我对数据库的东西相当陌生。
它与COALESCE
的相似之处在于,如果第一个参数是NULL
,它将返回第二个参数的值。
在某些情况下,您必须小心使用ISNULL
,因为如果第一个参数值的类型定义为更小,它可能会截断第二个参数值。例如:
DECLARE @val1 CHAR(1);
DECLARE @val2 CHAR(2) = 'AB';
SELECT ISNULL(@val1,@val2); -- Returns 'A', not 'AB'
SELECT COALESCE(@val1,@val2); -- Returns 'AB'