Страницы

Поиск по вопросам

воскресенье, 9 июня 2019 г.

Почему нельзя использовать NEWID() в функциях?

Собственно вопрос, почему его нельзя использовать в функциях и группу других похож недетерминированных функций(Например, Rand())?
Это какая-то особенность MS SQL или и в других СУБД похожая ситуация?
Со стороны я не вижу причин запрета.


Ответ

Способ обхода:
create view getNewID as select newid() as new_id
create function myfunction () returns uniqueidentifier as begin return (select new_id from getNewID) end
Почему - возможно NEWID() изменяет состояние БД:
User-defined functions cannot be used to perform actions that modify the database state.

Комментариев нет:

Отправить комментарий