sql-server – 关于存储过程默认返回值的MSDN
如果没有错误发生,任何人都可以准确指出MSDN所说的每个用户存储过程默认返回0吗?换句话说,在作为存储过程时,我可以确定下面给出的示例代码
IF someStatement BEGIN RETURN 1 END 如果someStatement为false且没有错误发生,应该总是返回零? 我知道它实际上是这样工作的,但是我没有从微软那里找到任何明确的声明. 解决方法看起来曾几何时,返回值可能意味着SQL Server 2000之前的某些内容(参见SQL 2000 BOL return value article之前的参考).我查看是否可以找到专门针对MS SQL的这些原始返回码的列表,并找到了 following(我不知道它的真实性,但实际上并没有列出值). 因此,在阅读了所有这些文章之后,看起来@return_status是一个在执行存储过程时始终返回的参数(即使您不使用它).根据RETURN Books在线文章,返回码不能为空.
运行以下T-SQL肯定会显示这一点, create Procedure Test as begin DECLARE @RTN integer Return @RTN END GO Exec Test GO Drop Procedure Test GO 你会收到的 The 'Test' procedure attempted to return a status of NULL,which is not allowed. A status of 0 will be returned instead. 最后看起来答案是因为@return_status不能为null(未设置为0或设置为NULL)… 至于假设的BOL article for SQL 7.0中提到的错误代码,我的猜测将是Sybase的一个旧版本… Sybase 5.0 Manual 短剑的一种 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |