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