SQL Server过程中的IsNull有什么作用?

时间:2016-07-21 18:15:27

标签: sql sql-server

我已经在SQL Server存储过程中编写了以下更新语句。

IsNull在这做什么?

Update [dbo].[Images]
set ImageName = IsNull(@ImageName, ImageName), ItemId = IsNull(@ItemId, ItemId)  
where TypeId = @TypeId;

我对数据库的东西很新。

1 个答案:

答案 0 :(得分:1)

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'