Ваша проблема здесь в том, что значение по умолчанию является выражением, и кажется, что вы хотите, чтобы оно просто возвращало значение, такое как 'bob' или 5.
В значительной степени это происходит в тот момент, когда вы используете GetDate () или вызываете пользовательскую функцию, такую как dbo.MyFunc (). На данный момент, что он должен вернуть в качестве значения по умолчанию?
Поскольку единственная надежная вещь, которую может сделать сервер sql, - это вернуть вам выражение, которое он будет использовать для генерации значения по умолчанию, вы можете снова запустить его через сервер sql, чтобы определить результат, т.е.
DECLARE @def nvarchar(max)
SELECT @def = column_def FROM information_schema.columns
WHERE table_name = 'ADDRESS' AND column_name = 'ADDRESS_MASTER'
EXEC ('SELECT ' + @def)
Конечно, если выражение не является константой, как, например, в случае GetDate, это будет неверно к тому времени, когда вы начнете вставлять фактические данные. Также это может вызвать проблемы, если использовать пользовательскую функцию с побочными эффектами, но пользовательскую функцию с побочными эффектами, используемую по умолчанию, я бы уже рассмотрел как проблему.