Нет, такого расширения нет. (Хотя было бы неплохо!) Обычный способ сделать это было бы сказать:
a :: RecordWithFunc
a = RecordWithFunc {
func = \x y -> x + y
}
Или даже, в этом случае:
a :: RecordWithFunc
a = RecordWithFunc {
func = (+)
}
Вот альтернативное решение, которое может работать, если необходимо пересеять с порядковым номером больше чем 1.
TRUNCATE #Table1
SET IDENTITY_INSERT #Table1 ON
INSERT INTO #Table1 (TableID) -- This is your primary key field
VALUES (@SequenceNumber - 1)
SET IDENTITY_INSERT #Table1 OFF
DELETE FROM #Table1
То, что это делает, должно установить IDENTITY_INSERT на Вашей временной таблице, чтобы позволить Вам добавлять строку с явным идентификатором. Можно затем удалить эту строку, но далее вставки должны начать с последнего порядкового номера.
Вы записали:
"Вызывающая сторона должна владеть таблицей или быть членом фиксированной роли сервера системного администратора, зафиксированный db_owner".
Таким образом (если это не ошибка), согласно безупречной логике лейтенанта Columbo, каждое помещение должно быть ложью. Это означает, вызывающая сторона не владеет таблицей, даже если он создал ее.
На самом деле кажется, что все объекты, созданные в tempd, принадлежат dbo по умолчанию. Можно исследовать его, если Вы делаете следующее в Query Analyzer:
CREATE TABLE #NotMyTable (TestID int identity)
SELECT user_name(uid) FROM sysobjects WHERE name LIKE '#NotMyTable%'
Вы будете видеть, что dbo является владельцем временной таблицы.
Так, каково могло быть решение?
(Предисловие: Мне не нравится такое управление, но интеллектуальный стимул управляет мной... ;-))
Так, Вы могли записать другую хранимую процедуру, которая обновляет UID в sysobjects tempdb к значению Вашего пользователя (дрожь!). Я протестировал его только в Query Analyzer. После Обновления я мог выполнить Вашу команду DBCC CHECKIDENT.
Альтернативное решение выполнения УСЕЧЕННОГО и команд CHECKIDENT состояло бы в том, чтобы просто отбросить и воссоздать Вашу временную таблицу. Например.
DROP TABLE #Table1
CREATE TABLE #Table1
(
....
)
Это не может быть наиболее эффективным решением все же.