gpt4 book ai didi

sql-server - 存储过程API的最佳实践?

转载 作者:行者123 更新时间:2023-12-03 02:49:57 24 4
gpt4 key购买 nike

我们正在向我们的产品添加一些可由第 3 方客户端调用的存储过程。是否有参数验证、返回值、RAISERROR 等最佳实践?

第 3 方客户端无法直接访问表,只能访问某些存储过程。存储过程涉及的表受到良好的约束,但我们希望尽可能用户友好,以便在存储过程被错误调用时提供详细的错误信息。

最佳答案

  • 使用 TRY/CATCH block
  • 抛出有意义的消息(我使用“INFO:”等前缀来区分我的错误和数据库错误)

示例:

SET NOCOUNT, XACT_ABORT ON
...
BEGIN TRY
IF @parameter1 IS NULL
RAISERROR ('INFO: "parameter1" should not be blank', 16, 1)

IF @parameter2 < 0
RAISERROR ('INFO: "parameter2" must be greate then zero', 16, 1)

...

END TRY
BEGIN CATCH
DECLARE @MyError nvarchar(2048)
SELECT @MyError = ERROR_MESSAGE() -- + other stuff, like stored proc name perhaps
RAISERROR (@MyError, 16, 1)
...
END CATCH

关于sql-server - 存储过程API的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1929778/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com