2015-07-24 2 views
0

Я пытаюсь использовать следующую хранимую процедуру, и я получаю ошибкухранимых процедур Ошибка арифметического переполнения преобразования выражения к типу данных междунар

Msg 8115, Level 16, State 2, Процедура xlaAFSsp_reports, строка 25
Ошибка арифметического переполнения, преобразующая выражение в тип данных int.

Линия 24: тусклый myadapter как новое SqlDataAdapter (МояКоманда)
Линия 25: mycommand.CommandType = CommandType.StoredProcedure
Линия 26: myadapter.fill (DS, "результаты")
Line 27:
Line 28: Rs = ds.tables (0) .rows (0)

значения в таблице не 0

Любая идея, что причины этого?

ALTER PROCEDURE [dbo].[xlaAFSsp_reports] 
AS 
    SET NOCOUNT ON 

    -- Consolidate disk size (also done on xlaAFSsp_expire_files) 
    UPDATE xlaAFSstorages 
    SET currentsize = ISNULL((select SUM(filesize) 
           from xlaAFSfiles 
           where s3 = 0 
           and storageid = xlaAFSstorages.storageid), 0) 

    create table #ttable (
     totalfiles int, 
     usedspace int, 
     nonexpiring int, 
     protected int, 
     totalusers int, 
     paidusers int, 
     totalstorages int, 
     allocatedspace int, 
    ) 

    -- Total Stats 
    insert into #ttable (totalfiles, usedspace, nonexpiring, protected, totalusers, paidusers, totalstorages, allocatedspace) 
    values (0, 0, 0, 0, 0, 0, 0, 0) 

    update #ttable 
    set totalfiles = (Select count(fileid) from xlaAFSfiles), 
     usedspace = (Select isnull(sum(filesize), 0) from xlaAFSfiles), 
     nonexpiring = (Select count(fileid) from xlaAFSfiles 
         where fsid in (select fsid from xlaAFSfilesets 
             where expiredate = '-')), 
     protected = (Select count(fileid) from xlaAFSfiles 
        where fsid in (select fsid from xlaAFSfilesets 
            where accesspwd <> '')), 
     totalusers = (Select COUNT(userid) from xlaAFSusers), 
     paidusers = (Select COUNT(userid) from xlaAFSusers where ispaid <> ''), 
     totalstorages = (Select COUNT(storageid) from xlaAFSstorages), 
     allocatedspace = (Select isnull(SUM(allocatedsize),-1) 
          from xlaAFSstorages) 


     select * from #ttable 
     drop table #ttable 

ответ

0

Похоже, что одна из сумм больше, чем 2,147,483,647.

MS-SQL int, bigint, smallint, and tinyint

+0

И/Или один из полей в xlaAFSstorages не является INT (возможно, NUMERIC, FLOAT или даже * упаси * а VARCHAR) и неявное принуждение вызывает проблему. – MatBailie

+0

Столбец является плавающей точкой, но говорит, что я не могу изменить его, не отбрасывая таблицу. – user1342164

+0

Устанавливает вопрос о том, какой размер файла будет храниться как float ... но можете ли вы изменить тип данных в таблице temp, чтобы вместо этого соответствовать? – Stone

Смежные вопросы

 Смежные вопросы