Прежде всего: это не поле IDENTITY().
В QlikView он используется для генерации числа на основе параметров, отправленных в функцию. См. его документацию здесь: https://help.qlik.com/en-US/qlikview/November2017/Subsystems/Client/Content/Scripting/CounterFunctions/autonumber.htm
Короче говоря, вы отправляете ему параметр, и он возвращает целое число, которое будет идентифицировать те же аргументы для остальной части скрипта. Если отправить...
AutoNumber('Name 900') -> returns 1
AutoNumber('Name 300') -> returns 2
AutoNumber('Name 001') -> returns 3
AutoNumber('Name 900') -> returns 1 ... again
и потому что параметр уже находится во внутреннем списке автонумерации
Я пытался создать что-то подобное в SQL Server, но невозможно использовать SELECT внутри скалярных функций.
Мне нужно получить что-то вроде...
INSERT INTO FacSales (SumaryID, InvoiceID, InvoiceDate
, ProductID, SaleValue, CustomerID, VendorID)
SELECT AutoNumber(sale.VendorID, sale.CustomerID, sale.ProductID)
, sale.InvoiceID
, sale.SaleDate
, details.ProductID
, etc, etc, etc.
Есть ли внутри SQL Server «собственная» функция, которая выполняет это? Или есть способ построить это с помощью процедуры/функции?
Спасибо.