Есть ли способ создать запрос конкретных функций в SQL Server 2008? - PullRequest
0 голосов
/ 21 декабря 2011

В попытке придерживаться принципа Dry У меня есть некоторый код, который, я чувствую, мог бы легко жить в функции.Возможно, мне понадобится повторно использовать этот код в будущем, а может и нет.В идеале у меня была бы функция, которая живет именно в этом фрагменте кода, поскольку она не дает никакой пользы для базы данных в целом, а жизнь внутри любой из существующих схем создаст шум при попытке найти значимые и глобально полезные функции.

Я попытался написать сценарий, который использует типичный синтаксис для создания функции перед моим другим кодом и удаления функции в конце кода.Это не идеально из-за потенциальных столкновений в будущем, но приемлемый риск.К сожалению, я получаю сообщение об ошибке:

'CREATE FUNCTION' must be the first statement in a query batch. 

Добавление точек с запятой до и после оператора, к сожалению, не является быстрым решением.Разве нельзя быстро использовать функции, не встраивая их в базу данных?

Или я задаю не тот вопрос.Есть ли способ в одном скрипте принудительно разделять пакеты?

1 Ответ

2 голосов
/ 21 декабря 2011

Если вы действительно запускаете «пакет» (например, набор команд T-SQL, запущенных в Query analyzer или ossql), тогда просто используйте «go». Ваша «функция создания» должна работать, если это первая строка после «go» - опять же, в зависимости от вашего интерпретатора T-SQL. OSSQL: должно работать. Подключение ADO в программе VB6: определенно не будет работать.

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