Могу ли я добавить пользовательскую функцию на уровне сервера в SQL Server 2008 r2? - PullRequest
1 голос
/ 27 января 2011

Мне нужно создать функцию, которая будет использоваться во всех базах данных в моем экземпляре SQL. Можно ли добавить пользовательскую функцию на уровне сервера в SQL Server 2008 r2?

Ответы [ 3 ]

11 голосов
/ 27 января 2011

Я бы создал для себя небольшую базу данных под названием «Инструменты» или что-то в этом роде для хранения таких функций. Затем укажите их полное имя, где они вам нужны: Tools.dbo.MyUDF.

Избегайте соблазна хранить подобные вещи в базе данных Master. Эта база данных принадлежит SQL Server и не должна использоваться для таких целей.

1 голос
/ 27 января 2011

Только добавив его в основную базу данных.Возможно, вы захотите присвоить ему префикс sp_, чтобы он автоматически просматривался в базе данных master.Кроме того, в зависимости от назначения функции вам может потребоваться пометить ее как системный объект.

0 голосов
/ 27 января 2011

Нет, UDF должен быть создан в конкретной БД.

UDF в любой БД может использоваться в любой другой БД, если у входа в SQL Server для соответствующего исполняющего пользователя (ей) есть достаточные разрешения для этого. Одной из причин создания таких пользовательских функций в отдельной БД с осмысленным именем было бы четкое документирование назначения UDF (и любых других объектов, которые вы можете создать в этой БД) для других пользователей, администраторов, специалистов службы поддержки и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...