s-s-rs-report:如何修复错误过程需要“ntext/nchar/nvarchar”类型的参数“@parameters”

Posted

技术标签:

【中文标题】s-s-rs-report:如何修复错误过程需要“ntext/nchar/nvarchar”类型的参数“@parameters”【英文标题】:s-s-rs-report : how to fix error Procedure expects parameter '@parameters' of type 'ntext/nchar/nvarchar' 【发布时间】:2020-06-26 04:25:51 【问题描述】:

我的数据库中有调用表名的参数,例如我的数据库中的表名,如 GPS-RV.1_b。 然后我尝试在我的查询生成器中调用它,例如

declare @cmd nvarchar(max)
set @cmd = ' select top 100 X,Y,Z from dbo.' + @tableName
DECLARE @ParmDefinition nvarchar(100) = N'@tableName nvarchar(100)';
print @cmd
exec sp_executesql @cmd, @ParmDefinition = '@tableName';

它已经运行,但是当我尝试输入我的表名并按确定按钮时,它显示此错误

------------------

执行查询时出错。
过程需要类型为“ntext/nchar/nvarchar”的参数“@parameters”。

------------------------------
附加信息:

过程需要类型为“ntext/nchar/nvarchar”的参数“@parameters”。 (Microsoft SQL Server,错误:214)

如需帮助,请单击:http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.50.1617&EvtSrc=MSSQLServer&EvtID=214&LinkId=20476

------------------------------
纽扣:

好的
------------------------------

我的查询中是否缺少任何部分?还是我做错了? 感谢您的帮助和任何修复它的建议。

【问题讨论】:

这不是它的工作原理。您已连接表名;这不是参数 sommarskog.se/dynamic_sql.html 【参考方案1】:

只执行你的@cmd 语句而不发送参数

declare @cmd nvarchar(max)
set @cmd = ' select top 100 X,Y,Z from dbo.' + @tableName

print @cmd
exec sp_executesql @cmd

正如@Mitch Whaeat 所说,@tableName 不是参数,它只是一个变量。请记住将值分配给@tableName 变量。

【讨论】:

已经在测试您的帮助,但它显示错误,例如“-”附近的语法不正确。 ------------------------------ 附加信息:'-' 附近的语法不正确。 (Microsoft SQL Server,错误:102) 如需帮助,请单击:go.microsoft.com/… ------------------------------ 按钮:确定------------------------------ " 在我的数据库中,我的表有一个带有符号组合的名称,如减号 ' - ' , dot ' 。 ' 并在 '_' 下划线。 这种情况下需要使用括号set @cmd = ' select top 100 X,Y,Z from dbo.[' + @tableName + ']' 哇,这绝对是我想要的,非常感谢@JotaPardo 帮助我。【参考方案2】:

您将 @cmd 声明为 NVARCHAR

set @cmd = N' select top';

exec sp_executesql N''+ @cmd +'';

【讨论】:

以上是关于s-s-rs-report:如何修复错误过程需要“ntext/nchar/nvarchar”类型的参数“@parameters”的主要内容,如果未能解决你的问题,请参考以下文章

如何修复存储过程 Oracle PL/SQL 的错误?

如何修复PUT Invoke-RestMethod中的“401 Unauthorized”错误(试图替换存储过程)

如何修复包含多行错误的结果

如何修复“需要路径,验证错误”,猫鼬,节点

如何修复“需要路径,验证错误”,猫鼬,节点

如何修复:“错误:需要数据和哈希参数”