说我有一个函数或存储过程,它接受几个VARCHAR参数.我已经厌倦了这样编写sql来测试这些参数是否有一个值:
IF @SomeVarcharParm IS NOT NULL AND LEN(@SomeVarcharParm) > 0 BEGIN -- do stuff END
必须有一个更好的方式来做到这一点.不在吗?
解决方法
你可以做ISNULL(@SomeVarcharParam,”)<> “或者你可以创建返回一个UDF的UDF:
create function dbo.IsNullOrEmpty(@x varchar(max)) returns bit as BEGIN IF @SomeVarcharParm IS NOT NULL AND LEN(@SomeVarcharParm) > 0 RETURN 0 ELSE RETURN 1 END
并调用使用IF NOT dbo.IsNullOrEmpty(@SomeVarcharParam)BEGIN …
请记住,当调用UDF时,您必须在其所有者的前面(此处为dbo).