Как я бросаю Scope_Identity () к Интервалу?

Тот факт, что вы должны признать исключения, является правильным, но это также может быть реализовано с использованием структур ошибок. Вы можете создать базовый класс ошибок, который проверяет в своем dtor, был ли вызван определенный метод (например, IsOk). Если нет, вы можете что-то записать в журнал, а затем выйти, или сгенерировать исключение, или вызвать assert, и т.д ...

Простой вызов IsOk для объекта ошибки, не реагируя на него, будет эквивалентен записи catch (...) {} Оба выражения будут демонстрировать одинаковое отсутствие доброй воли программиста.

Передача кода ошибки до правильного уровня вызывает большую озабоченность. По сути, вам придется заставить почти все методы возвращать код ошибки по единственной причине распространения. Но опять же, функция или метод всегда должны быть аннотированы исключениями, которые они могут генерировать. Таким образом, в основном у вас та же проблема, без интерфейса для ее поддержки.

11
задан Peter Turner 16 June 2009 в 14:28
поделиться

2 ответа

Если исходный столбец, которому принадлежит идентификатор, является целым числом, нет необходимости приводить его. Следующее работает нормально, предполагая, что столбец идентификаторов является целым числом для начала или помещается в "Int".

DECLARE @NewIdent Int
SET @NewIdent = SCOPE_IDENTITY()
18
ответ дан 3 December 2019 в 02:30
поделиться
SELECT CAST( bigintcolumn AS int )

(Если вы знаете, что оно умещается в 32-битное целое число)

12
ответ дан 3 December 2019 в 02:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: