使用SQL Server的.NET扩展时遇错误:需@params参数为ntext/nchar/nvarchar类型
SQL Server .NET扩展调用C#代码报错解决
问题描述
运行以下SQL Server .NET扩展示例代码时:
DECLARE @param1 NVARCHAR(4000); SET @param1 = N'This is an _underline_ test'; EXEC sp_execute_external_script @language = N'dotnet', @script = N'<MarkdownHelper>.<MarkdownHelper>', @input_data_1 = N'SELECT Markdown', @param1 = @param1;
收到错误提示:
Msg 214, Level 16, State 175, Procedure sp_execute_external_script, Line 1 [Batch Start Line 0]
Procedure expects parameter '@params' of type 'ntext/nchar/nvarchar'
问题原因
调用sp_execute_external_script传递自定义参数(如示例中的@param1)时,必须通过@params参数显式声明所有自定义参数的名称和数据类型,否则存储过程无法正确识别这些参数。
修正后的代码
添加@params参数声明自定义参数的类型,修改后的代码如下:
DECLARE @param1 NVARCHAR(4000); DECLARE @params NVARCHAR(MAX); SET @param1 = N'This is an _underline_ test'; SET @params = N'@param1 NVARCHAR(4000)'; -- 声明自定义参数的名称与类型 EXEC sp_execute_external_script @language = N'dotnet', @script = N'<MarkdownHelper>.<MarkdownHelper>', @input_data_1 = N'SELECT Markdown', @params = @params, -- 指定参数声明语句 @param1 = @param1;
内容的提问来源于stack exchange,提问作者Aashishkebab
相关产品推荐
相关产品推荐

