首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

SQL, 过程需要类型为 'ntext/nchar/nvarchar' 的参数 '@statement'

2013-02-24 
SQL求助, 过程需要类型为 'ntext/nchar/nvarchar' 的参数 '@statement'。本帖最后由 P

SQL求助, 过程需要类型为 'ntext/nchar/nvarchar' 的参数 '@statement'。
本帖最后由 Pc498471249 于 2013-01-31 16:26:16 编辑 错误如题, 我先贴上存储过程代码


ALTER PROCEDURE [dbo].[GetAllCount]
AS
BEGIN
    declare @countsql varchar(100);
    declare @allcount bigint=0; /*总行数*/
    declare @count int;         /*当前表行数*/
    declare @currentTemp int; /*起始迭代数*/
    set @currentTemp=10000;
    while(@currentTemp<=99999)
    begin
set @countsql='select @count=count(QQNumber) from tab_'+convert(varchar(10),@currentTemp);
exec sp_executesql @countsql,N'@count int output',@count output;
set @allcount=@allcount+@count;
    end
    return @allcount;
END



完了, 我要统计99999张表的数据总和, 循环每张表统计个数然后累加给一个公共的值, 最后返回,  逻辑思路没错啊。。没啥会有这个怪问题捏。。。。。。。。

消息 214,级别 16,状态 2,过程 sp_executesql,第 1 行
过程需要类型为 'ntext/nchar/nvarchar' 的参数 '@statement'。
[解决办法]
declare @countsql varchar(100);
=>
declare @countsql nvarchar(1000);
[解决办法]
引用:
引用:declare @countsql varchar(100);
=>
declare @countsql nvarchar(1000);
??? 跟语句大小有关系????  我每次循环的时候 都重新覆盖了上一条语句, 为啥要把字符串改长点呢

declare @countsql nvarchar(1000);

热点排行