Как я могу привести Scope_Identity () к Int? - PullRequest
11 голосов
/ 16 июня 2009

Итак Scope_Identity () возвращает числовой тип? -Byte в SQL Server.

Это не круто.

Есть ли безопасный способ преобразовать его в int в запросе на выборку, чтобы нам не приходилось управлять всеми прихотями SQL Server в нашем ODBC Wrapper?

Ответы [ 3 ]

17 голосов
/ 16 июня 2009

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

DECLARE @NewIdent Int
SET @NewIdent = SCOPE_IDENTITY()
12 голосов
/ 16 июня 2009
SELECT CAST( bigintcolumn AS int )

(При условии, что вы знаете, что оно вписывается в 32-разрядное целое число)

2 голосов
/ 16 мая 2017

Просто сотворите это как:

select CAST(SCOPE_IDENTITY() as int)

И ваш уровень данных:

reader.GetInt32(0);
...