Точнее говоря, SCOPE_IDENTITY () возвращает только самое последнее значение идентификатора, созданное в той же области, что и вызов SCOPE_IDENTITY ().В опубликованном примере вызов SCOPE_IDENTITY () является единственным оператором в пакете (следовательно, единственным оператором в текущей области), поэтому он возвращает ноль.Если вы хотите получить последнее значение идентификатора, сгенерированное для конкретной таблицы, попробуйте IDENT_CURRENT ('tablename').Это не относится к области действия, оно просто дает вам последнее значение идентификатора, сгенерированное для данной таблицы.