Управление значениями по умолчанию в параметрах хранимых процедур - PullRequest
0 голосов
/ 13 июня 2011

Я работаю в БД, которая имеет около 10 DEFAULT ограничений, разбросанных по двум или трем различным таблицам, и мне нужно написать хранимую процедуру, которая получает в качестве значений параметров для всех этих атрибутов. Однако, если значения не получены, я хочу, чтобы эти параметры принимали значения по умолчанию в соответствующей таблице. Зная, что не существует простого способа сделать это, я подумал о написании пользовательских UDF, возвращающих значения по умолчанию, добавляя ограничения как DEFAULT (dbo.SomeFunction()) FOR [Attribute] и добавляя = dbo.SomeFunction() в качестве значения по умолчанию для каждого параметра. Я хотел бы, однако, спросить, как лучше всего это сделать:

1) Написать UDF для каждого атрибута, упрощая выполнение, но заканчивая 10 различными функциями; или

2) Запишите один dbo.GetDefault(TableName NVARCHAR(32), AttributeName NVARCHAR(32) и используйте IF ... ELSE ... или SWITCH для различных пар таблица / атрибут.

Что вы думаете?

1 Ответ

1 голос
/ 13 июня 2011

У вас должен быть один udf по умолчанию.

  • типы данных не будут такими же
  • по мере развития вашего кода вы получите зависимости в вычисляемых столбцах или представлениях схемы: если тебе нужен другой, то будет грязно менять
...