开发者社区> 问答> 正文

使用CLR存储过程时添加一些逻辑

我正在尝试在存储过程中编写验证。此存储过程使用CLR代码创建CLR存储过程:

CREATE OR ALTER PROCEDURE SayHelloVoice    
    @messageText NVARCHAR(MAX),
    @procedureName NVARCHAR(MAX)     
AS     
    EXTERNAL NAME say.[CLRProcedures.SayHi].Voice
GO

上面的代码工作完美。但是,我需要添加一些验证:

CREATE OR ALTER PROCEDURE SayHelloVoice    
    @messageText NVARCHAR(MAX),
    @procedureName NVARCHAR(MAX)     
AS
    IF @messageText IS NULL
       RAISERROR('Custom text', 16,16)  
    -- some other logic here

    EXTERNAL NAME say.[CLRProcedures.SayHi].Voice
GO

但是SSMS显示错误:

展开
收起
祖安文状元 2020-01-05 14:13:39 507 0
1 条回答
写回答
取消 提交回答
  • 您可以将其包装:

    CREATE OR alter PROCEDURE SayHelloVoice_sub   
      @messageText NVARCHAR(MAX)     
    , @procedureName nvarchar(MAX)     
    AS     
        EXTERNAL NAME say.[CLRProcedures.SayHi].Voice
    GO
    

    CREATE OR alter PROCEDURE SayHelloVoice    
      @messageText NVARCHAR(MAX)     
    , @procedureName nvarchar(MAX)     
    AS
    
        IF @messageText IS NULL
           RAISERROR('Custom text', 16,16)  
        -- some other logic here
    
        EXEC SayHelloVoice_sub @messageText,@procedureName;
    GO
    
    2020-01-05 14:13:53
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载