|
|
|||||||||||||||||||||||||||||
|
Создание системной функции в MS SQL Server 2008Источник: t-sql
В очередной раз на форуме встретил вопрос: "Создание системной функции в MS SQL Server 2008". Как известно, в SQL Server 2000 эта задача решалась достаточно легко и без малой крови (How to Write Your Own System Functions). Но как всё-таки решить подобную задачу на SQL Server 2005/2008? Вниманиене рекомендую им пользоваться!!!
1) Останавливаем наш SQL Server 2) Запускаем его в монопольном режиме (с флагом -m): 3) Создаём нашу функцию в системной БД (скрытой в обычном режиме работы SQL Server`а) mssqlsystemresource 01.USE mssqlsystemresource02.GO03. 04.-- Включаем возможность изменения данный в БД Resource05.ALTER DATABASE mssqlsystemresource SET READ_WRITE06.GO07. 08.-- Ваша функция09.CREATE FUNCTION dbo.fn_MyFunction()10.RETURNS NVARCHAR(255)11.AS12.BEGIN13.RETURN @@VERSION14.END15.GO16. 17.-- Публикуем во все БД18.EXEC sys.sp_SetPublicInterfaceObject 'fn_MyFunction'19.GO20. 21.-- Возвращаем БД Resource в режим "только чтение"22.ALTER DATABASE mssqlsystemresource SET READ_ONLY23.GO4) Перестартовываем наш SQL Server в обычном режиме 5) Пользуемся нашей-системной функцией в контексте любой БД PS: Так как БД mssqlsystemresource хранит все системные объекты, то при установке очередного SP обновиться вся эта база, соответственно и ваши "системные" функции исчезнут и их придётся создавать заново. Ссылки по теме
|
|
|||||||