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
变量。
我的数据库中有调用 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
变量。