Как включить Scope_Identity() в Int?
Итак Scope_Identity() возвращает? -Byte числовой тип в SQL Server.
Это не удивительно.
Есть ли безопасный способ передать его в int в выбранном запросе, поэтому нам не нужно управлять каждой прихотью SQL Server в нашем ODBC Wrapper?
Ответы
Ответ 1
Если исходный столбец, которому принадлежит идентификатор, является Integer, нет необходимости его отличать. Следующее работает просто отлично, если столбец идентификатора является целым, чтобы начать с него или он помещается внутри "Int".
DECLARE @NewIdent Int
SET @NewIdent = SCOPE_IDENTITY()
Ответ 2
SELECT CAST( bigintcolumn AS int )
(при условии, что вы знаете, что он поместится в 32-битное целое)
Ответ 3
Просто введите это как:
select CAST(SCOPE_IDENTITY() as int)
И ваш уровень данных:
reader.GetInt32(0);