Tsql T-SQL将非空列的一部分替换为空会生成错误

Tsql T-SQL将非空列的一部分替换为空会生成错误,tsql,replace,null,notnull,Tsql,Replace,Null,Notnull,我有一个表变量,它的所有列都不能为null(每个列的定义都不能为null): 我用这个变量做了一些操作,并用一些文本初始化了“SampleColumnText” 然后我尝试用其他函数返回的文本替换它的某些部分。在某些情况下,函数返回NULL,因此我认为此代码会生成错误: REPLACE(SampleColumnText , '{*}', @InitByFunctionText) 其中@InitByFunctionText这次为空 因此,当我仅将部分文本替换为NULL而不是全部文本时,是否会生成

我有一个表变量,它的所有列都不能为null(每个列的定义都不能为null):

我用这个变量做了一些操作,并用一些文本初始化了“SampleColumnText”

然后我尝试用其他函数返回的文本替换它的某些部分。在某些情况下,函数返回NULL,因此我认为此代码会生成错误:

REPLACE(SampleColumnText , '{*}', @InitByFunctionText)
其中@InitByFunctionText这次为空


因此,当我仅将部分文本替换为NULL而不是全部文本时,是否会生成正常错误?

我最近遇到了类似的情况,以下内容解决了这个问题:

REPLACE(SampleColumnText , '{*}', ISNULL(@InitByFunctionText, ''))

我最近也有过类似的经历,以下是我对这个问题的看法:

REPLACE(SampleColumnText , '{*}', ISNULL(@InitByFunctionText, ''))

这是预期的行为

如果任何一个参数为
NULL
,则返回
NULL

如果要将其替换为空字符串(与
NULL
不同),可以使用:


这是预期的行为

如果任何一个参数为
NULL
,则返回
NULL

如果要将其替换为空字符串(与
NULL
不同),可以使用:

REPLACE(SampleColumnText , '{*}', COALESCE(@InitByFunctionText,''))