Я знаю, что это должно быть просто, но как мне предварять создание функции проверкой, существует ли она уже? Если он существует, я хочу отбросить и воссоздать его.
tsql
sql-server-2000
Дэвид Штайн
источник
источник
Вы также можете посмотреть имя в sysobjects
На самом деле, если функция может быть табличной функцией, вам нужно использовать
источник
Это работает для любого объекта, а не только для функций:
затем просто добавьте свой вкус объекта, как в:
источник
У вас есть два варианта отбросить и воссоздать процедуру в SQL Server 2016.
Начиная с SQL Server 2016 - используйте
IF EXISTS
Начиная с SQL Server 2016 SP1 - используйте
OR ALTER
источник
источник
Я обычно избегаю запросов из таблиц типов sys *, поставщики обычно меняют их между выпусками, основными или другими. Что я всегда делал, так это выдавал
DROP FUNCTION <name>
инструкцию и не беспокоился о какой-либо ошибке SQL, которая может вернуться. Я считаю это стандартной процедурой в области DBA.источник
Из
SQL Server 2016 CTP3
вы можете использовать новые операторы DIE вместо большихIF
обертокСинтаксис:
Запрос:
Больше информации здесь
источник
источник
Вот мой взгляд на это:
источник
Проверьте, существует ли функция
Проверьте IF Exist для сохраненной процедуры, также нажав ссылку ниже http://www.gurujipoint.com/2017/05/check-if-exist-for-trigger-function-and.html
источник
Если вы хотите использовать стандарт INFORMATION_SCHEMA ISO ISO, а не специфичный для SQL Server
sysobjects
, вы можете сделать это:источник