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

ssrs-report : how to fix error Procedure expects parameter '@parameters' of type 'ntext/nchar/nvarchar'

我的数据库中有调用 table 名称的参数,例如我的数据库中的 table 名称,如 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';

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

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

An error occurred while executing the query.
Procedure expects parameter '@parameters' of type 'ntext/nchar/nvarchar'.

------------------------------
ADDITIONAL INFORMATION:

Procedure expects parameter '@parameters' of type 'ntext/nchar/nvarchar'. (Microsoft SQL Server, Error: 214)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.50.1617&EvtSrc=MSSQLServer&EvtID=214&LinkId=20476

------------------------------
BUTTONS:

OK
------------------------------

我的查询是否有遗漏的部分??还是我做错了?? 感谢您的帮助和任何修复建议。

您将@cmd 声明为 NVARCHAR

set @cmd = N' select top';

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

只需执行您的 @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 变量。