Использовать возвращаемое значение из функции SQL в качестве значения по умолчанию для нескольких столбцов?

У меня есть таблица, в которой я хотел бы установить значения по умолчанию для двух ее столбцов. Я использую функцию SQL, которая генерирует уникальное значение. Я могу достаточно легко установить столбец по умолчанию для одного из столбцов, используя функцию:

[PreCode] NVARCHAR(20) NOT NULL DEFAULT([dbo].GetPreCode()),

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

1 ответ

Решение

Вы можете использовать триггер INSTEAD OF INSERT, чтобы установить его, или вы можете иметь второй столбец как вычисляемый столбец и установить значение, равное первому.

Вы можете попытаться установить значение по умолчанию для второго столбца равным значению первого, но я не уверен, подождет ли установка первого, прежде чем установить значение второго, или установит значение NULL, прежде чем применять значение к первому.

Другие вопросы по тегам