Я пишу хранимую процедуру в SQL Server 2008, и мне нужно подсчитать строки, затронутые запросом.Какой правильный тип для @@ ROWCOUNT?
DECLARE
@my_rows AS INT
, а затем
SELECT *
FROM a table
WHERE some conditions
SET @[email protected]@ROWCOUNT
если я объявляю my_rows, как VARCHAR он работает правильно, но если я заявляю, как INT я получаю следующее сообщение об ошибке:
Arithmetic overflow error converting expression to data type tinyint.
Что такое правильный тип для объявлять? Я думаю, что число строк может быть целым, а betweeb 0 и полным числом строк.
Я проверил ваш код без проблем. Вы уверены, что вы указали '@ my_rows' как' int', а не 'tinyint', поскольку состояние исключений? – Magnus
Ну, как писал в своем ответе HarshalY, тип данных ['@@ ROWCOUNT'] (https://msdn.microsoft.com/en-us/library/ms187316.aspx) на самом деле является' int'. Когда я пробовал свой код (с фактическим предложением select), я не получил никаких ошибок. Текст ошибки подсказывает, что вы указали '@ my_rows' как' tinyint' вместо 'int', возможно, это проблема. –
Вы не получите эту ошибку из кода в вопросе. Убедитесь, что это действительно соответствует выполняемому вами коду, который создает эту ошибку. –