Sql server SQL Server函数/Proc求值表达式如果无效,则返回错误
我想使用下面的代码,创建一个公共函数来传入一个或多个表达式,并返回我选择的错误 示例代码:Sql server SQL Server函数/Proc求值表达式如果无效,则返回错误,sql-server,Sql Server,我想使用下面的代码,创建一个公共函数来传入一个或多个表达式,并返回我选择的错误 示例代码: IF @Variable1 IS NULL AND @Variable IS NULL or @Variable3 is not null BEGIN -- EITHER DATASET NAME OR ID MUST BE SUPPLIED. SET @_msg = 'There was an error' SET @_returnValue =
IF @Variable1 IS NULL AND @Variable IS NULL or @Variable3 is not null
BEGIN
-- EITHER DATASET NAME OR ID MUST BE SUPPLIED.
SET @_msg = 'There was an error'
SET @_returnValue = -1
GOTO ERROR_HANDLER
END
ERROR_HANDLER:
-- CREATE THE CLOSING MESSAGE.
IF @_returnValue <> 0
RAISERROR(@_msg, 18, 2) WITH SETERROR
RETURN @_returnValue
无论如何,我认为通过这种方式传递动态SQL,我可以做一些事情,可以发送一个完整的表达式,对其进行求值、验证,然后代码继续或停止并出现错误
我想看看社区是否有更好的方法来做到这一点,或者我是否走上了正确的道路
谢谢。我不太确定你的问题是否正确。但是您可以轻松创建一个过程(如果需要的话) 但我根本不会用这个。我会在发生错误的地方调用RAISERROR(),因为它会在错误日志中为您提供更准确的行号和过程
exec ValidateMultipleConditions @Variable1 + 'IS NULL AND ' + @Variable + 'IS NULL or ' + @Variable3 + ' is not null'
CREATE PROCEDURE dbo.errorout @message nvarchar(100), @sev int, @state int
AS
BEGIN
RAISERROR(@message,@sev,@state) WITH NOWAIT
END