#sql #sql-server #sql-server-2005 #user-defined-functions
#sql #sql-server #sql-server-2005 #определяемые пользователем функции
Вопрос:
Давайте представим, что у меня есть 2 отдельные базы данных на одном экземпляре SQL Server. DB1 — это база данных, относящаяся к торговле и ведению позиций. DB2 — это база данных, связанная с переменными рыночной цены.
Обе базы данных имеют концепцию работы с объектами time / date, и я создал несколько удобных UDF. Давайте далее представим, что я создаю несколько удобных математических функций, которые я хотел бы вызывать из всех баз данных. Каков наилучший способ их создания и организации?
т. Е. Должен ли я создавать UDF и SPS в главной базе данных? Как мне сгруппировать все мои пользовательские UDF-файлы, лучше ли создать что-то в схеме, чтобы я заменил .dbo на .myDateTime или .myMath?
Предложения приветствуются, поскольку мне не нравится, как я в настоящее время разместил большинство своих функций в DB1, и я знаю, что многие из них будут иметь отношение к DB2?
Ответ №1:
Создайте проект базы данных с помощью Visual Studio (я полагаю, что 2008 и 2010 поддерживают его). Сохраняйте объектные скрипты организованными в рамках проекта. Проверьте проект и связанные файлы в какой-либо форме программного обеспечения для управления версиями (SVN, git, hg, SourceSafe …).
У вас должен быть администратор базы данных или специальный специалист, который отвечает за развертывание изменений кода в ваших производственных средах. Вы можете настроить проект базы данных с помощью сценариев до и после развертывания, которые могут упростить работу.
Я не могу рекомендовать хранить пользовательские объекты в master
; ИМХО, вам лучше иметь копии в каждой базе данных. Если вы управляете своим кодом, как указано выше, не имеет значения, что они дублируются, поскольку источник находится в одном управляемом расположении.
Комментарии:
1. Я использую SQL server ‘express’ всего пару месяцев и использую 2005 год в рабочей среде (поскольку он по умолчанию содержится в Windows SBS2008) и запускаю SQL Server 2008 r2 Express на ноутбуке для разработки. Знаете ли вы, будет ли ваш метод работать в Visual Express edition (извините, поскольку я не использую Visual Studio, хотя я подумываю о загрузке IronPython с проектом кодовой базы VisualStudio). Кроме того, я буду администратором базы данных. Спасибо
2. К сожалению, я думаю, вам понадобятся, по крайней мере, «профессиональные» версии VS 2008 или 2010. Возможно, я ошибаюсь, и вы можете захотеть проверить загрузчик MS web platform, поскольку они немного меняют свои предложения. Несмотря на это, вы все равно можете организовать свои объектные скрипты в файловой системе и сохранить их в системе управления версиями. GForge — неплохой бесплатный инструмент SVN.